1.一般MFC得到的窗口位置随机,窗口大小可以随意改变,固我们可以再增加语句进行设置,仍然在框架类中添加CMainFrame::OnGetMinMaxInfo(MINMAXINFO* lpMMI)函数,方法是点到类视图,在CMainFrame类上点击右键,选择属性,在属性页点击工具栏的“消息”图标,在列表中找出“VM_GETMINMAXINFO”项即可添加上述函数。
2. CMainFrame::OnGetMinMaxInfo(MINMAXINFO*lpMMI)函数中添加一下代码:
voidCMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
// TODO: Add your message handler code here and/or call default
lpMMI->ptMaxTrackSize.x = 820; //设置窗口最大宽度
lpMMI->ptMaxTrackSize.y = 720; //设置窗口最大高度
lpMMI->ptMinTrackSize.x = 620; //设置窗口最小宽度
lpMMI->ptMinTrackSize.y = 520; //设置窗口最小高度
CFrameWnd::OnGetMinMaxInfo(lpMMI);
}
说明:(1)上述代码的意思是:在运行程序后弹出MFC窗口,它的宽度、高度可调,范围是,宽度从620到820,高度是从520到720。若当宽度或高度的最大、最小值相等, 则意味着尺寸不可调。
(2)OnGetMinMaxInfo中的参数意义:
lpMMI->ptMaxSize.x= 800; // 设置窗口最大化时的宽度
lpMMI->ptMaxSize.y =600; // 设置窗口最大化时的高度
lpMMI->ptMaxPosition.x =100; // 设置窗口最大化时x坐标
lpMMI->ptMaxPosition.y =100; // 设置窗口最大化时y坐标
lpMMI->ptMinTrackSize.x =400; // 设置窗口最小宽度
lpMMI->ptMinTrackSize.y =400; // 设置窗口最小高度
lpMMI->ptMaxTrackSize.x =600; // 设置窗口最大宽度
lpMMI->ptMaxTrackSize.y =500; // 设置窗口最大高度
(3)获取屏幕大小的函数:
不含任务栏:
int cx = GetSystemMetrics(SM_CXFULLSCREEN);
int cy = GetSystemMetrics(SM_CYFULLSCREEN);
包含任务栏:
int cx = GetSystemMetrics(SM_CXSCREEN);
int cy = GetSystemMetrics(SM_CYSCREEN);
3.在CMainFrame::OnCreate中添加如下语句,使得窗口居中:
CenterWindow(NULL);
完。