我有两个MFC应用程序。其中一个只是一个对话框,其中包含一些支持它的功能,另一个是控制台应用程序。如何使控制台应用程序能够打开位于其他应用程序中的对话框?
我尝试将对话框应用程序构建为dll并导入它。此外,将现有项目添加到控制台项目并以这种方式链接它们。虽然我相信我得到了链接,但我永远不能让控制台实例化对话框。我也可能以错误的方式处理这部分。
是否有一种简单的方法可以导出我创建的对话框并将其导入另一个程序?如果我创建了一个名为“input”的项目并且它创建了inputDlg.h / inputDlg.cpp,为什么我不能将它们移动到另一个项目中并从中调用它们?或者在它之外使用对话框的初始项目是不可能的?
答案 0 :(得分:0)
对话框(或任何其他GUI窗口)需要消息泵,但控制台应用程序通常不具有消息泵。如果您希望控制台应用程序只等到对话框关闭,最简单的方法是使用Win32 API而不是MFC。只需通过调用DialogBox创建一个对话框。此API提供了自己的消息循环。
否则,您将采用多线程方法,控制台在主线程中运行。启动带有消息泵的辅助线程,并在该线程中创建基于CDialog的对话框。
答案 1 :(得分:0)
做我需要的事情:
这使我能够在我的控制台程序中包含WhateverDlg.h并使用DoModal()。成功了!