Winapi 如何在基于mfc对话框的应用程序中模拟消息泵机制?

Winapi 如何在基于mfc对话框的应用程序中模拟消息泵机制?,winapi,visual-c++,mfc,dialog,Winapi,Visual C++,Mfc,Dialog,我想知道如何在基于对话框的应用程序中模拟mfc消息泵。 在我的应用程序中,我有一个基类MyDialog。通过使用这个基类,我可以根据自己的需求生成不同类型的对话框。例如:dialog获取用户凭据,dialog获取安装程序的文件夹路径等。现在的问题是,我试图在某些条件下显示或隐藏对话框上的一些选项(控件)。这里showwindow()可以很好地显示控件,但当我使用它们隐藏控件时,它根本不起作用。但如果我最小化或最大化应用程序,它就可以正常工作。我觉得窗口没有刷新(当最小化或最大化时会刷新)。为什么

我想知道如何在基于对话框的应用程序中模拟mfc消息泵。
在我的应用程序中,我有一个基类MyDialog。通过使用这个基类,我可以根据自己的需求生成不同类型的对话框。例如:dialog获取用户凭据,dialog获取安装程序的文件夹路径等。现在的问题是,我试图在某些条件下显示或隐藏对话框上的一些选项(控件)。这里showwindow()可以很好地显示控件,但当我使用它们隐藏控件时,它根本不起作用。但如果我最小化或最大化应用程序,它就可以正常工作。我觉得窗口没有刷新(当最小化或最大化时会刷新)。为什么?为了让它工作,我想创建自己的消息泵。thanx Prevance

UpdateWidow、InvalidateBu立、InvalidateRgn都将强制重新绘制对话框/窗口。显然,您已经有一个消息泵正在运行,或者您将无法最小化和恢复对话框。您可以从对话框的DoModal()方法中获得一个。您需要更好地记录您的问题,至少发布试图隐藏控件的代码。AfxPumpMessage()模拟MFC消息泵,但我怀疑您的问题与此相关,因为DoModal()可以为您完成此操作。