4

我有一个 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

4

2 回答 2

6

经过一天的挖掘,我找到了解决方案。天哪,终于弄清楚这一点感觉很好。无论如何,这是解决方案。

我只需要重写子框架的CanShowOnTaskBarTabs()方法来返回 FALSE。这是类方法:

首先,在 childframe.h 文件中,将以下代码放入类声明中

public:
     virtual BOOL CanShowOnTaskBarTabs() override;

然后在您的 childframe.cpp 文件中,将以下代码放在最底部:

BOOL CChildFrame::CanShowOnTaskBarTabs()
{
    return FALSE;
}

以下是有关该主题的更多信息:http: //msdn.microsoft.com/en-us/library/ee256255 (v=vs.100).aspx

于 2012-11-07T03:44:46.770 回答
0

我有一个更简单的解决方案。在应用程序类InitInstance()方法上,只需调用

EnableTaskbarInteraction(FALSE);

在创建主框架之前。然后,当鼠标悬停在其任务栏图标上时,您将获得每个应用程序实例的一个视图,而不是每个 seub-window 一个视图。

于 2020-04-01T16:16:15.277 回答