gpt4 book ai didi

winapi - 如何在Win32程序中设置让大小被内存

转载 作者:行者123 更新时间:2023-12-01 14:33:30 24 4
gpt4 key购买 nike

我遇到了这个问题。我有一个简单的 Win32 程序,就像我可以通过在 Visual Studio 2010 的“模板 --> Visual C++”下选择“Win32 项目”获得的样板。

我发现所有其他基于 Windows 的程序(如 Adob​​e Reader、Windows 资源管理器)都具有以下功能:将主窗口放大到新的大小,然后从文件菜单或系统菜单中选择“关闭”或“退出”以将其关闭,然后您再次启动该程序,主窗口将是您上次调整的大小。然而,我从 Visual Studio 作为 Bootstrap 获得的那个程序没有这样的功能。

我对此进行了更多研究,但找不到我可以调整 WndClass 或 CreateWindow 中的哪个设置来实现这一点。有谁知道,提前谢谢你的帮助。

最佳答案

最简单的方法是使用 GetWindowPlacement()SetWindowPlacement()功能。这些为您管理窗口大小和状态(最小化/最大化/恢复)。

调用GetWindowPlacement()当您想记录窗口的当前状态时:

WINDOWPLACEMENT wp = {0};
wp.length = sizeof(wp);
if (GetWindowPlacement(hWnd, &wp))
{
// save wp values somewhere...
}

然后您可以将 WINDOWPLACEMENT 结构的值保存在程序配置文件中的某个位置 - 在注册表中或磁盘上。

要恢复窗口的信息,将保存的值加载到 WINDOWPLACEMENT 结构中,然后调用 SetWindowPlacement()功能:

if (values were previously saved)
{
WINDOWPLACEMENT wp = {0};
wp.length = sizeof(wp);
// load wp values from somewhere...
SetWindowPlacement(hWnd, &wp);
}

关于winapi - 如何在Win32程序中设置让大小被内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20624720/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com