【发布时间】:2011-12-03 13:54:35
【问题描述】:
我正在用 C++ 创建一个 Windows 应用程序。我正在使用 SDL (http://www.libsdl.org/) - 但是这个问题适用于许多其他类型的用 C++ 编写的 Windows 应用程序,因为几年前我在 MFC 中遇到过同样的问题并且从未解决过这个问题。
现在我希望我的应用程序以最大化的方式启动。许多其他应用程序默认以最大化状态启动,例如当我运行 firefox 时,它会自动以最大化状态启动。
现在我读到我可以使用 ShowWindow http://msdn.microsoft.com/en-us/library/ms633548
通过调用:
ShowWindow(info1.window, SW_MAXIMIZE);
当用户点击最大化按钮时,窗口会在被调用时最大化。但是,问题在于,当我的应用程序启动时,首先它以特定大小(例如 700 x 500)启动,然后在调用 ShowWindow 时,它会最大化。 这与 Firefox 的启动方式有很大不同,Firefox 启动后只是显示为最大化,而不是先显示为小尺寸。
所以我的问题是,在调用 ShowWindow 之前,如何在没有这个中间窗口大小(未最大化)的情况下启动最大化?用户看到一个较小的窗口然后在启动时突然最大化是很烦人的。
如果你能告诉我如何在 MFC 或 DOT NET 中执行此操作,我想我可能会弄清楚如何在 SDL 中执行此操作。
【问题讨论】:
-
我认为 C++ 根本不处理窗口,所以你使用的是什么框架???
-
您最初是如何创建窗口的?
-
我正在使用 SDL 用 C++ 语言编写一个 windows 应用程序,但是这个问题对于我过去编写的任何 windows 应用程序都很常见,我从未解决过这个特殊问题。我在过去对 Windows MFC 应用程序进行了编程。你可以在 2001 年看到我的一个应用程序codeproject.com/KB/edit/hexedit.aspx
-
我更新了它以显示 SDL 的链接。
-
注意 WinMain() 入口点声明,类库在调用 ShowWindow() 时遵循传递的 nCmdShow 参数的值。您必须修改它的 SDL 版本。 msdn.microsoft.com/en-us/library/windows/desktop/…
标签: c++ windows maximize-window