在一个应用程序中创建两个窗口

Create two windows in one application?

本文关键字:两个 窗口 创建 一个 应用程序      更新时间:2023-10-16

这可能是一个简单的问题,但我不知道从哪里开始寻找答案。如何使用本地winapi在一个应用程序中创建两个单独的windows界面?我用相同的HINSTANCE放两个CreateWindow()函数吗?如果我想要一个登录屏幕窗口和内容页面,这样登录屏幕先出现,在我按下按钮后,登录屏幕被破坏,内容页面出现。我怎样才能变出这样的把戏?

我正在考虑使用DestroyWindow,然后CreateWindow内的按钮点击消息。然而,这将意味着WinMain中的主while循环(用于翻译/调度msg)将退出其循环并导致整个程序退出。另一种方法是在WinMain中预先创建它,但是如果按钮被单击并进入第二个循环而不是退出程序,我将如何通知WinMain ?

你想太多了。要创建两个窗口,调用CreateWindow两次。就这么简单。

调用DestroyWindow不会导致程序退出其消息泵。调用PostQuitMessage就是这样做的。所以不要那样做。

当按钮被点击时,销毁一个窗口并创建另一个。没有把戏。消息泵将消息传递给所有窗口(除非您显式地为一个窗口请求消息,但您不应该这样做)。