保留任务栏图标,替换MFC对话框



我具有基于MFC对话框的应用程序。用户可以更改对话框的语言,我通过关闭现有对话框并以更改的语言打开另一个对话。问题在于,任务栏的效果是删除了一个图标,并且在其位置创建了另一个图标。如果我的应用程序的图标不是任务栏中的最后一个图标,则它将被感知到任务栏图标集的末尾。

我想保留图标在任务栏中的位置,而不是要防止图标闪烁。我该怎么做?

该应用程序必须支持从Windows XP到Windows 7的OS'E。

编辑:我要接受答案的替代问题是如何创建一个不可见的窗口,但在任务栏中显示了一个不可见的窗口,以及如何将相关窗口消息从该窗口转发到我的主窗口?

使对话框成为另一个外部父窗口的孩子。父母可以是对话框或任何其他类型的窗口;它将提供的只是标题栏。如果用户试图调整大小,则必须将调整命令调整大小命令到对话框,但是否则您不需要在父窗口中做太多。

为什么不代替cformview替换对话框?这样,有一个框架窗口围绕对话框包裹(嵌入在表单视图中),并且是拥有任务栏图标的框架窗口。

创建一个显示CFormView的SDI应用程序。用默认语言(或用户以前选择的任何langauge)在初始化中显示对话框。当用户选择"更改语言"选项时,只需更改使用新的表单视图。

奖励功能:通过此设计,框架将不用付出任何努力来照顾诸如特定语言的加速器和菜单之类的事情。

有关如何执行此操作的更多信息,请查看http://www.codeguru.com/cpp/w-d/doc_view/viewmanagement/article.php/c3341/multiple-views-usishs-usish-sdi.hti.htm

最新更新