
使用SetWindowPos函数
CWnd::SetWindowPosBOOL SetWindowPos( const CWnd pWndInsertAfter, int x, int y, int cx, int cy,UINT nFlags )。返回值如果函数成功,则返回非零值;否则返回0。
注意:这个窗口不是活动窗口。应用程序不能激活一个非活动窗口但同时又不把它带到Z轴次序的顶部。应用程序可以没有任何限制地改变活动窗口的Z轴次序。非顶层窗口可能拥有一个顶层窗口,但是反之则不成立。任何被顶层窗口拥有的窗口(例如对话框)都将自己变为顶层窗口,以确保所有被拥有的窗口位于它们的拥有者上方。在Windows 31或更新的版本中,可以将窗口移动到Z轴次序的顶部,并通过设置它们的WS_EX_TOPMOST风格而将之锁定在那里。
使用MoveWindow函数
void CWnd::MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );
void CWnd::MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );
参数:
x指定了CWnd的左边的新位置。
y指定了CWnd的顶部的新位置。
nWidth指定了CWnd的新宽度。
nHeight指定了CWnd的新高度。
bRepaint指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画 *** 作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画
lpRectCRect对象或RECT结构,指定了新的大小和位置。说明这个函数改变窗口的位置和大小。对于顶层的CWnd对象,x和y参数是相对于屏幕的左上角的。对于子对象,它们是相对于父窗口客户区的左上角的。
PrivateExtractIcons,指定cxIcon和cyIcon都是64就可以了。
这个需要XP SP1或者2003以上版本的Platform SDK或Windows SDK。
不过一般来说内置64x64大小的图标的程序比较少。虽说Vista之后系统支持256x256的大图标,但是很多非微软的程序还是沿用XP的最大48x48。
你在本对话框类中用GetWindowRect
肯定只能获得本窗口的啊
用
::GetWindowRect(
),
第一个参数是目标窗口的HWND
(注意前面有两个冒号)
MFC 对话框的尺寸大小使用MoveWindow,意思是改变指定窗口的位置和大小。
函数功能:改变指定窗口的位置和大小对顶窗口来说,位置和大小取决于屏幕的左上角;对子窗口来说,位置和大小取决于父窗口客户区的左上角对于Owned窗口,位置和大小取决于屏幕左上角
函数原型:BOOL MoveWindow( HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint );
参数
hWnd指定了窗口的句柄
x指定了CWnd的左边的新位置。
y指定了CWnd的顶部的新位置。
nWidth指定了CWnd的新宽度。
nHeight指定了CWnd的新高度。
bRepaint指定了是否要重画CWnd。如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。如果这个参数为FALSE,则不会发生任何类型的重画 *** 作。这应用于客户区、非客户区(包括标题条和滚动条)和由于CWnd移动而露出的父窗口的任何部分。当这个参数为FALSE的时候,应用程序必须明确地使CWnd和父窗口中必须重画的部分无效或重画。
MoveWindow给窗口发送WM_WINDOWPOSCHANGING,WM_WINDOWPOSCHANGED,WM_MOVE,WM_SIZE和WM_NCCALCSIZE消息。
以上就是关于在MFC怎么中设置窗口大小和位置全部的内容,包括:在MFC怎么中设置窗口大小和位置、MFC怎么提取程序中的64*64位大小的图标、MFC获取游戏窗口的位置和大小等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)