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

}

可以用滚动视图CSrcollView,设置滚动范围800*600,这样即使窗口缩小了,实际客户区仍有这么大;

可以禁止系统菜单的放缩和最大化,通过MoveWindow或者初始化窗口属性cs变量固定窗口大小,不可缩小也不可放大;

截获框架CMainFrame的OnSize,在里面强行设置(不推荐,效果不好)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

void CMainFrame::OnSize(UINT nType, int cx, int cy)

{

if(cx<800)

{

cx = 800

CRect rect

GetWindowRect(rect)

rect.right = rect.left+cx

MoveWindow(rect,true)

}

CSDIFrameWnd::OnSize(nType, cx, cy)

// TODO: Add your message handler code here


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存