我有一个MDI应用程序,当我点击新文档时,它会打开一个单独的标签。这将在Windows中的任务栏中创建另一个图标实例。有什么办法可以改变这种行为,以便任务栏只显示一个图标实例吗?
我知道一种方法是使用SDI并使用选项卡查看我的视图,但我希望将其保留为MDI。这甚至是可能的吗?
我正在尝试模仿这个名为'Dameware NT Utilities'的特定应用程序的视图: http://www.dameware.com/v3-dameware/media/DameWare/DW%20NTU/Carousel/DRS-Primary-medium.png?width=490&height=276&ext=.png
答案 0 :(得分:4)
经过一天的挖掘后,我找到了解决方案。天哪,最终弄明白这件事感觉很好。无论如何这里是解决方案。
我只需要覆盖子框架的CanShowOnTaskBarTabs()方法以返回FALSE。这是类方法:
首先,在childframe.h文件中,将以下代码放在类声明
中public:
virtual BOOL CanShowOnTaskBarTabs();
然后在childframe.cpp文件中,将以下代码放在最底层:
BOOL CChildFrame::CanShowOnTaskBarTabs()
{
return FALSE;
}
以下是有关此主题的更多信息:http://msdn.microsoft.com/en-us/library/ee256255(v=vs.100).aspx
答案 1 :(得分:0)
我有一个更简单的解决方案。在应用类InitInstance()
方法上,只需调用
EnableTaskbarInteraction(FALSE);
在创建主框架之前。然后,当鼠标悬停在其任务栏图标上时,每个应用程序实例将获得一个视图,而不是每个seub-winodow视图将获得一个视图。