1.在PreCreateWindow(CREATESTRUCT& cs)中更改窗口样式
对 WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX的说明:后两者都依赖第一个,如果没有第一个,即使有后两个也没有效果。这里应该好理解,如果没有菜单栏,那么菜单上的各种按钮肯定也不会存在了。
可以用来设置窗口在NORM状态下的 高度和宽度,以及右上角的坐标
cs.cy = ::GetSystemMetrics(SM_CYSCREEN)/7*5;
cs.cx = ::GetSystemMetrics(SM_CXSCREEN)/7*5;
cs.y = ((cs.cy * 7/5) - cs.cy) / 2;
cs.x = ((cs.cx * 7/5) - cs.cx) / 2;
2.框架最大化
可能你在PreCreateWindow(CREATESTRUCT& cs)函数中设置了cs.style,并且里面包含WS_MAXIMIZEBOX,但你会发现,程序运行出来不是最大化,而是NORM状态。
这是因为在应用程序类中的初始化函数中设置了ShowWindow()的参数为:SW_SHOW。
若要实现最大化,则需作如下调整:
BOOL CGPS_SPPApp::InitInstance()
{
.................................
// 唯一的一个窗口
已初始化,因此显示它并对其进行更新
m_pMainWnd->ShowWindow(SW_MAXIMIZE);
m_pMainWnd->UpdateWindow();
// 仅当具有后缀时才调用 DragAcceptFiles
// 在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生
.................................................
}