【问题标题】:Create two windows in one application?在一个应用程序中创建两个窗口?
【发布时间】:2011-07-09 14:26:34
【问题描述】:

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

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

【问题讨论】:

    标签: c++ windows winapi


    【解决方案1】:

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

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

    单击按钮时,销毁一个窗口并创建另一个窗口。没有技巧。消息泵将消息传递到所有个窗口(除非您为一个窗口显式请求消息而做错了,但您不应该这样做)。

    【讨论】:

    • 哦,我认为消息功能仅特定于创建的窗口......我仍然想知道的另一件事是如何销毁窗口? PostQuitMessage 和 DestroyWindow 在这种情况下不合适
    • DestroyWindow 在何种情况下看起来像是一种不恰当的销毁窗口的方式?
    • 糟糕,对我的误解很抱歉
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多