2017-08-09 123 views
0

我已經創建了基於MFC框架的MDI應用程序,但CMFCTabCtrl的樣式不符合我們的要求。我想改變標籤高度,顏色和添加一些圖片和按鈕。如何自定義MFC MDI CMFCTabCtrl

但我不知道如何。有任何例子或文章能幫助我嗎?

回答

2

您可以輕鬆定製您的MFC選項卡控件。有很多選擇。

要啓用關閉按鈕,你只需要調用m_TabControl.EnableActiveTabCloseButton();

確保在你的子窗口中添加WM_CLOSE消息處理程序:

void CMyTabWindow::OnClose() 
{ 
    CMFCTabCtrl *pTab = static_cast<CMFCTabCtrl*>(GetParent()); 
    pTab->RemoveTab(pTab->GetActiveTab()); 
} 

可以使用SetTabBkColor()SetAutoColors()自定義顏色。

您還可以使用SetImageList()設置圖像。

高度還可以使用SetTabsHeight()來定製。

+0

感謝您的回覆。我發現這些方法基於MDI應用程序框架風格。有沒有辦法自定義沒有所有樣式的選項卡控件?我想要自定義選項卡控件,如通過OnDraw方法中的GDI繪製一些矩形。但是我不能在我的子框架類中覆蓋WM_DRAWITEM消息。我已經創建了我自己的選項卡控件,它是從標準選項卡控件類派生而來的。並把它放在MDI客戶端上面。響應WM_LBUTTONDOWN消息來激活視圖。但它不是我想要使用的方法。 –

+0

如果您想要完整的所有者繪製解決方案,您需要重新實施整個控制。而且你還必須創建自己的MDI框架。我不會推薦這麼做。 MS UI標準由專業設計人員開發並經過許多用戶的測試。 –