WTL / Winapi中消息处理程序中的模态窗口

时间:2011-03-02 12:13:29

标签: c++ winapi wtl

我有一个小应用程序,它只有一个消息WTL窗口,它进行后台处理。但在某些情况下,我想显示一个应该作为模态的窗口,也就是说,在用户单击按钮之前,不应该返回仅消息窗口的消息处理程序。

我在想我可以这样做(伪代码):

LRESULT OnMessageWndHandler1(...)
{
     CModalWindow wnd;
     wnd.create(...)

     while(GetMessageLoop){}
}

但是当我尝试时,窗口创建得很好,但是按一个键会在模态窗口编辑框中输出几十个字符,而不是像普通窗口那样输出一个字符。

我很可能做错了什么,但我不知道什么是正确的方法。模态窗口完全是代码生成的。

2 个答案:

答案 0 :(得分:2)

  

我想展示一个窗口   应该表现为模态......

在我的Unusual but Useful Dialog-based Classes Designed for Specialization中,您将找到在任何控件或自制窗口上调用 DoModal()的方法。

答案 1 :(得分:0)

首先,这可能是一个坏主意。代码只是常规的消息循环。我决定采用不那么奇特的解决方案。