DELPHI中用align属性可使控件占满父窗口,vc中怎么实现?(20分)

  • 主题发起人 主题发起人 guhui
  • 开始时间 开始时间
G

guhui

Unregistered / Unconfirmed
GUEST, unregistred user!
我想使一个列表控件占满整个客户区。
 
在程序初始化时,加入
控件高度=客户区高度
控件宽度=客户区宽度
 
列表控件 的 Align:=alClient;
就可以了!
 
VC里面哪里有列表控件Align属性,你说的是delphi吧!
 
CreateWindow
 
先用GetSystemMetrics(SM_CXSCREEN)与GetSystemMetrics(SM_CYSCREEN)取得屏幕大小,
nFullWidth=GetSystemMetrics(SM_CXSCREEN);
nFullHeight=GetSystemMetrics(SM_CYSCREEN)
然后取得窗口矩形GetWindowRect(&WindowRect);
设置全屏矩形的参数:
FullScreenRect.left=WindowRect.left;
FullScreenRect.top=WindowRect.top;
FullScreenRect.right=WindowRect.right+nFullWidth;
FullScreenRect.bottom=WindowRect.bottom+nFullHeight;
最后用SetWindoiwPlacement()进入全屏状态:
WINDOWPLACEMENT wndpl;
wndpl.length=sizeof(WINDOWPLACEMENT);
wndpl.flags=0;
wndpl.rcNormalPositioin=m_FullScreenRect;
wndpl.ShowCmd=SW_SHOWNORMAL;
SetWindowPlacement(&wndpl);
这样就可以进入全屏状态了,如果想要恢复原始屏幕的话,先用GetWindowPlacement(&Oldwndpl);
保存原始参数,接到恢复消息后,用SetWindowPlacement(&Oldwndpl)就行了。
我能说的就这么多了,不知道你明白了没有。[?]
 
方法一:
使用CListView而不是List Control。
创建一个SDI的project,在MFC AppWizard的第6步的Bass Class中选择CListView。
方法二:
在CXXDialog::OnSize中用SetWindowPos()或MoveWindow()
 
VC根本就不能说是对API的封装,简直就是在帮倒忙!
 
控件的基类是CWnd,所以可以用CWnd的成员函数SetPos来解决的呀,
偶就是这样子做的.很简单的.
 
不好意思,写错了,是用函数SetWindowPos做的.
 
wm_size中处理
 
后退
顶部