由于显示器的显示模式有多种在VC中
基于对话框或FORM的应用程序在
最大化后可能会因为分辨率太高而导致
窗体上的控件周围有大量空白,动态调整
控件太麻烦.请问用什么方法使窗体最大化
后不会超过指定的尺寸.
就象在C++Builder中可以直接在属性中设置
窗体的最大尺寸?
基于对话框或FORM的应用程序在
最大化后可能会因为分辨率太高而导致
窗体上的控件周围有大量空白,动态调整
控件太麻烦.请问用什么方法使窗体最大化
后不会超过指定的尺寸.
就象在C++Builder中可以直接在属性中设置
窗体的最大尺寸?
设置MINMAXINFO
{
lpMMI->ptMaxTrackSize.x=800;
lpMMI->ptMaxTrackSize.y=600;
CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
if(pMsg->message == WM_GETMINMAXINFO)
{
this->MoveWindow(0,0,800,600,TRUE);
}
好象没能拦截最大化消息,应重载哪个函数
window向你的窗口发送wm_getminmaxinfo,其lparam参数是一个指向MINMAXINFO结构的指针,你只须通过这个指针修改该结构的ptMaxTrackSize成员的值就可以了
void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam)
{
// TODO: Add your message handler code here and/or call default
if(nID==SC_MAXIMIZE)
{
MoveWindow(0,0,800,600);
}
else
CFrameWnd::OnSysCommand(nID, lParam);
}
处理,然后修改里面的那个指向MINMAXINFO的指针中关于最大时候长和宽的设定就可以了。