Vic*_*tor 2 c++ windows winapi
IDD_WINDOW_INFO当用户单击我的C++ Win32应用程序中的按钮或菜单项时,我有一个必须打开的对话框.我用来打开对话框的方法如下:
DialogBox(hInstance, MAKEINTRESOURCE(IDD_WINDOW_INFO), hMainWindow, WindowInfoProc);
Run Code Online (Sandbox Code Playgroud)
但我的问题是,当该对话框打开时,用户无法使用我的应用程序的主窗口进行操作.那么我可以做些什么来让两个窗口都活动?
您正在调用DialogBox以模态方式显示对话框.显示模态对话框时,其他所有窗口将被禁用,只有模态对话框可以接受输入.这是模态对话的本质和意图.我们的想法是,您只能与对话框进行交互,并且无法与其他窗口进行交互.
另一个答案建议将参数NULL作为hWndParent参数传递给DialogBox.那不是解决方案.这将导致你拥有一个无主的窗口.是的,您将能够与主窗口进行交互,但是当您这样做时,您的主窗口将显示在对话框的顶部.那是因为所有权设置不正确.我建议您阅读有关窗口所有权的内容,以便更好地了解问题.
问题的正确解决方案是显示无模式对话框.无模式对话框允许您与应用程序中的其他窗口进行交互.这正是你在问题中要求的.
您可以通过调用CreateDialog后跟来显示无模式对话框ShowWindow.此MSDN文章显示了一个示例:使用对话框.
| 归档时间: |
|
| 查看次数: |
318 次 |
| 最近记录: |