vs2010 如何设置MFC程序窗口大小

vs2010 如何设置MFC程序窗口大小  

在vs2010中建立的MFC单文档程序,无论是在CMainFrame里的PreCreateWindow函数中对cs进行修改,还是使用SetWindowPos或MoveWindow函数,都无法实现对窗口的修改。 现在的状态是,如果给窗口加上可以调节大小这一style,那么窗口会自动保留上次更改后的大小,如果不加可调,那窗口就会按系统所固定的一个大小进行显示,根本无视我的所有设置,怎么办? BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWndEx::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.cx=500; // cs.cy=500; //这两行完全无视 cs.style = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU ; return TRUE; } 尝试使用MoveWindow(50,50,500,500);与SetWindowPos(NULL, 0, 0, 500, 500, SWP_NOZORDER | SWP_NOMOVE); 却都没有任何效果。

    
程序在注册表里保留了FRAME上次的状态,包括大小位置以及各工具类窗口的布局等.  解决方法有二,其中第一个简单, 第二更稳妥:  1.)在InitInstance(..)调用CleanState(_T("WorkSpace"));  2.)让MainFrame按它的习惯布局完了再调整大小, 在此之前让MainFrame不显示.关键点: WM_CREATE, WM_WINDOWPOSCHANGING  你可能还会发现FRAME有时候会闪一下, 看着不舒服, 用第二个方法同样管用.



1  分享到:         
阅读(1995) |  评论(2) |  转载  (1)  | 举报
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值