我遇到了这个问题.我有一个简单的Win32程序,就像我在Visual Studio 2010的"模板 - > Visual C++"中选择"Win32项目"时可以得到的样板.
我发现所有其他基于Windows的程序,如Adobe Reader,Windows资源管理器具有以下功能:您将主窗口放大到新的大小,然后从文件菜单或系统菜单中选择"关闭"或"退出"关闭它,然后你再次启动程序,主窗口的大小将调整到上次.但是我从Visual Studio获得的程序作为引导程序没有这样的功能.
我对它进行了更多的研究,但无法找到WndClass或CreateWindow中的哪个设置,我可以通过调整来实现这一点.有谁知道,谢谢你的帮助.
最简单的方法是使用GetWindowPlacement()和SetWindowPlacement()函数.它们为您管理窗口大小和状态(最小化/最大化/恢复).
GetWindowPlacement()当您想要记录窗口的当前状态时调用:
WINDOWPLACEMENT wp = {0};
wp.length = sizeof(wp);
if (GetWindowPlacement(hWnd, &wp))
{
// save wp values somewhere...
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以WINDOWPLACEMENT在程序的配置文件中的某处保存结构的值- 在注册表中或磁盘上.
要恢复窗口的信息,请将保存的值加载到WINDOWPLACEMENT结构中,然后调用SetWindowPlacement()函数:
if (values were previously saved)
{
WINDOWPLACEMENT wp = {0};
wp.length = sizeof(wp);
// load wp values from somewhere...
SetWindowPlacement(hWnd, &wp);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |