2012-11-06 70 views
3

我有一個MDI應用程序,當我點擊新文檔時,它打開一個單獨的選項卡。這將在Windows中的任務欄中創建另一個圖標實例。有沒有什麼辦法可以改變這種行爲,只有一個圖標實例顯示在任務欄上?如何讓你的MDI MFC應用程序在TaskBar中顯示一個實例?

我知道一種方法是使用SDI並使用選項卡作爲我的視圖,但我想保留它爲MDI。這甚至是可能的。

我試圖模仿這種所謂的「的DameWare NT實用程序」特定應用程序的視圖: http://www.dameware.com/v3-dameware/media/DameWare/DW%20NTU/Carousel/DRS-Primary-medium.png?width=490&height=276&ext=.png

+0

我相信每一個* *頂層窗口獲取任務欄選項卡。避免它的唯一方法是使每個窗口成爲主窗口的子窗口。 –

+0

在我的應用程序中,我有一個主框架和一個子框架。我的視圖全部使用子框架,但標籤仍顯示在任務欄中。這是否意味着框架層次結構與窗口層次結構不同?你知道我如何去設置子窗口作爲主窗口的子窗口嗎? –

+0

對不起,我明白你的意思了。顯然,我已經過時了MDI界面的各個方面。 –

回答

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

+0

不會顯示在類嚮導中,但仍然有效! – Colin

相關問題