使用CDialogEx类使用CDialog类时不发生问题(Problems using CDialo

2019-09-24 06:42发布

1 .- ^ h ELLO。 在很多网站和论坛的搜索毕竟这一周,我发现我是有问题的点。 问题是,当我在Visual C ++一个新的MFC项目,如果我设置的应用程序类型为“基于对话框”,让相应的对话框类从它的默认CDialogEx派生,那么这个问题表示刚编译和不修改执行程序任何代码(我不知道,如果你可以试试这个在您的机器)。

2,有线的行为是与对话窗口活跃,如果我在任务栏的自由空间点击(甚至在另一个没有最大化窗口),然后在对话框窗口的边界(包括标题栏)基于应用程序保持为“聚焦”(未变灰),在于点击任务栏或者在不完全覆盖我的应用程序窗口中的另一个窗口,然后我的应用程序窗口应该有种失去焦点。

3,我知道这个有很多的代码之后,因为我发现用CFileDialog类这种行为,因为当我创造(的DoModal)了CFileDialog类的实例,然后我的应用程序窗口失去焦点(被“灰色)打开文件对话框时(如应),但是当文件对话框结束时,我的窗口的边框撑变灰(这是不正确的),和它保持这样直到我最小化和恢复我的窗口,或者我切换到另一个窗口,并返回到我的窗口。

4,我发现这个问题是从CDialogEx类继承,因为我创造了一个从无到有的新项目(正如我在第1款所述),看它是否是我是谁修改的东西,使我的程序的行为错了,事实证明,我在第2段所述,该新项目的行为。

5,好新鲜的是,我试图创建一个新的项目,但这次是从CDialog的,而不是继承CDialogEx。 而对于我吃惊的是,这个新计划的行为正确,我的意思是,在第2款所述有线行为是不存在于这个新项目。 正如我在第3段所述,我的另一问题是与文件对话框(CFileDialog类),幸运的改变,而不是CDialogEx我的项目从CDialog的继承的代码,也解决了这个问题。 我的意思是,这个问题是CDialogEx类。

6,我决定写这个问题,并还提供了我才发现,因为当我在寻找我看到很多人在不同的论坛有同样的问题没有得到解决的信息。 我想提一提,我尝试了所有的建议在论坛中提供,并且为他们,没有为我工作。

7.-正如我所说,一个解决方案是将继承从CDialogEx更改为CDialog的。 但我的问题是,如果你知道的东西我应该做的,使我的程序无法正常运行的CDialogEx类下的,因为我更喜欢使用新的接口,而不是旧的。 我也想,如果你尝试同样的问题,因为我在你的Visual Studio或不知道。

我希望我的信息,你的答案是对别人有用。 非常感谢你对你的答案。

文章来源: Problems using CDialogEx class that don't occur when using the CDialog class