固定单文档的窗口大小
固定单文档的窗口大小
WM_GETMAXMININFO消息; PreCreateWindow; OnSizing; 上面几种方法都可以的,我常用的是WM_GETMAXMININFO消息响应OnGetMinMaxInfo函数调用来实现。 方法一: CWnd::OnGetMinMaxInfo The framework calls this member function whenever Windows needs to know the maximized position or dimensions, or the minimum or maximum tracking size. afx_msg void OnGetMinMaxInfo( MINMAXINFO* lpMMI ); Example: void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { // TODO: Add your message handler code here and/or call default lpMMI->ptMinTrackSize.x = 100 ; lpMMI->ptMinTrackSize.y = 100 ; lpMMI->ptMaxTrackSize.x = 200 ; pMMI->ptMaxTrackSize.y = 200; CFrameWnd::OnGetMinMaxInfo(lpMMI); } 这样窗口的大小就被固定到长和宽的范围都是100-200。 方法二: 覆盖CMainFrame类的PreCreateWindow函数,去掉最大化按钮、添加固定边框属性、设置尺寸,实现如下。 BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; cs.style&=~WS_MAXIMIZEBOX; cs.style&=~WS_THICKFRAME; cs.cx=400; cs.cy=300; return TRUE; } 方法三: 用Onsize会在拖动时产生闪烁.最好用MINMAXINFO结构. |