MFC如何改变窗口大小??

MFC如何改变窗口大小??,第1张

自定义MFC窗口大小的话,可以用下面的方法,重载BOOL PreCreateWindow(CREATESTRUCT&cs) 函数。

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&cs)

{

if( !CFrameWnd::PreCreateWindow(cs))

return FALSE

// TODO: Modify the Window class or styles here bymodifying

// the CREATESTRUCTcs

cs.dwExStyle&= ~WS_EX_CLIENTEDGE

cs.lpszClass = AfxRegisterWndClass(0)

cs.style |= WS_CLIPCHILDREN|WS_CLIPSIBLINGS

cs.cx = 1000//窗口宽度

cs.cy = 800//窗口高度

return TRUE

}

mfc 窗口大小变化时,如何让窗口内部控件也一起随比例改变位置,解决办法:

对应窗口的属性Maximize Box和Minimize Box设置为true,从而能够使窗口最大化和最小化,Border属性设置为Resizing从而可以改变窗口的大小。

在消息有个WM_SIZE,添加函数OnSize,这样可以在函数内调整控件的大小,特别说明很多代码中利用当前控件比值与窗口大小比值再乘上当前窗口大小来改变控件大小,但是由于精度的问题,调整多次就会出问题,那么这里可以利用一个结构体保存每个控件与原窗口的比值。

如以上回答未解决问题,请尝试:

使用SetWindowPos函数。

使用MoveWindow函数


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/6913127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-30
下一篇 2023-03-30

发表评论

登录后才能评论

评论列表(0条)

保存