使用CWnd::ShowWindow(SW_SHOWMAXIMIZED)
按预期最大化我的应用窗口。
但是,当单击应用程序上的恢复按钮(或双击标题栏)时,恢复的大小与最大化窗口的大小相同,这会让用户感到困惑。
使用此替代代码具有相同的问题:
WINDOWPLACEMENT wndpl;
GetWindowPlacement(&wndpl);
wndpl.showCmd = SW_SHOWMAXIMIZED;
SetWindowPlacement(&wndpl);
恢复时如何保持默认的非最大化大小。
答案 0 :(得分:2)
我已经解决了我的问题,解决方案也可以解决你的问题。我的问题是,即使我在CMainFrame :: OnCreate中调用了SetWindowPlacement(& wndpl),如果窗口最大化,窗口也没有正确恢复。我在SetWindowPlacement之前添加了两行代码,现在它按预期工作。
CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
...
// Obtain wndpl, maybe from registry
AfxGetApp()->m_nCmdShow = wndpl.showCmd;
wndpl.showCmd = SW_SHOW;
SetWindowPlacement(&wndpl);
}
这两行帮助底层代码在调用ActivateFrame时不会搞砸,后者使用从CWinApp :: m_nCmdShow获取的参数调用ShowWindow。
答案 1 :(得分:-1)
所有信息都在扩展名为.RC的文件中。我从未使用过最大化/恢复程序,但您应该在同一窗口中查找“DIALOGEX”。您可以使用任何编辑器(记事本,超级编辑等)更改它