visual-c++ - 如何让 MDI MFC 应用程序在任务栏中显示一个实例?

标签 visual-c++ mfc mdi

我有一个 MDI 应用程序,当我单击新文档时,它会打开一个单独的选项卡。这将在 Windows 的任务栏中创建另一个图标实例。有什么办法可以改变这种行为,以便在任务栏上只显示一个图标实例?

我知道一种方法是使用 SDI 并为我的 View 使用选项卡,但我想将其保留为 MDI。这甚至可能吗。

我试图模仿这个名为“Dameware NT Utilities”的特定应用程序的 View :
http://www.dameware.com/v3-dameware/media/DameWare/DW%20NTU/Carousel/DRS-Primary-medium.png?width=490&height=276&ext=.png

最佳答案

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

我只需要覆盖子框架的 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

关于visual-c++ - 如何让 MDI MFC 应用程序在任务栏中显示一个实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13255935/

相关文章:

c# - C# 如何在另一个窗体中打开一个新窗口窗体

c++ - 是否有将 EXCEPTION_POINTERS 结构转换为字符串的函数?

c++ - 在 MSVC 中导出模板真的有用吗?

c++ - CMFCToolBar ComboBoxEdit 句柄删除按钮

C++ MFC MDI View 渲染

c# - 如何控制MDI窗体中子窗体的显示顺序

c++ - 确定内存位置是否更改值

c++ - Visual Studio 2008,错误 c2039 : 'set_new_handler' : is not a member of 'std'

c++ - 如何从 MFC 中的线程更改状态栏的 Pane 文本?

c++ - 如何将控制台输出数据输入命令提示符?