我有一个相当标准的MFC应用程序,它由一个主窗口组成,偶尔会弹出模态对话框。我们都知道,在模态对话框关闭之前,什么也不能做。
因此,一个很好的UI特性是将对话框后面的主窗口的其余部分“调暗”,以直观地表示在您完成模态对话框之前不能使用它。有些web应用程序和java/mac应用程序可以做到这一点,但我从未见过在传统的C++/MFC应用程序中这样做。我想试一试,即使它是不寻常的平台。
这是如何做到的呢?我在应用程序中有几个模态对话框,用于此模式:
// pMainFrame is available as a pointer to the CWnd of the main window
CMyD
在我的visual studio 2010项目中,我包含了两个解决方案。我有一个mfc应用程序,它是一个对话框,以及另一个只打印文本的可视c++应用程序。我想要的是弹出对话框,然后用户将输入x值、y值等,一旦用户单击on,第二个应用程序将对这些变量进行计算,然后给出输出。我已经完成了这两个项目,但是我很难将它们组合在一起。当组合项目运行时,首先弹出的是一个对话框,一旦用户单击ok,就会出现类似于的内容。任何帮助都将不胜感激--如果我的解释不清楚,很抱歉。
我在Visual Studio2008中运行了一个使用MFC的现有Visual C++项目。这台机器刚刚安装好,我已经从源代码管理中拉出了项目。解决方案可以构建,但是如果我进入资源文件并尝试打开并查看一个对话框,我会得到以下消息
2 ActiveX controls could not be instantiated. Reinstall or register the controls and try again message when viewing Dialog
我不确定如何确定它抱怨的是哪些ActiveX控件,因此我可以尝试重新注册它们,因为它不会显示对话框。
我可以创建一个新的对话
我有一个可视化的C++代码,它使用MFC,它创建了一个域对话框。这个项目不是我开发的,我的任务是隐藏对话框窗口。
我已经做到了,它在一段时间内工作得很好,但现在当dlg.Create被调用时,它会返回我:
CoCreateInstance of OLE control {00000000-0000-0000-0000-000000000000} failed
Result code: 0x80040154
Is the control is properly registered?
上面的消息不是构建错误,而是在dlg.Create失败后弹出的消息,因此我的应用程序不会调用::OnInitDi