2014-02-28 60 views
0

功能區按鈕可以包含其中的項目。但據我所知,他們只接受小圖片。我正在嘗試將大圖像添加到這些子項目中。帶有大圖像的功能區按鈕項目

有誰知道這可以做到嗎?

感謝,

enter image description here

編輯:

enter image description here

回答

2

使用SetAlwaysLargeImage()成員功能菜單中的子項,這通常是CMFCRibbonButtons本身:

std::auto_ptr<CMFCRibbonButton> apBtn3(new CMFCRibbonButton(ID_RIBBON_BTN_3, _T("Split Button"), 2, 2)); 
apBtn3->SetMenu(IDR_RIBBON_MENU_1, TRUE); 
apBtn3->SetAlwaysLargeImage(); 
apBtn3->RemoveSubItem(0); 
std::auto_ptr<CMFCRibbonButton> apSubButton(new CMFCRibbonButton(ID_RIBBON_MBTN_1, _T("Item 1"), 2, 2)); // <-- !!! 
apSubButton->SetAlwaysLargeImage(); // <-- !!! 
apBtn3->AddSubItem(apSubButton.release(), 0); // <-- !!! 
pPanel1->Add(apBtn3.release()); 

(修改從RibbonGadgets樣本代碼)

+0

太棒了!通過ribbon xml元素屬性可以實現相同的效果。 – ali

+0

我還沒有找到如何將複選框添加到大圖標菜單項,但是... – thomiel

+0

它可以沿着其他大圖標添加,但我無法設法使複選框本身儘可能大,即使「總是大」屬性設置爲「真」。看看編輯問題部分的圖片。 – ali

1

這似乎是一個CMFCRibbonGallery,而不是一個CMFCRibbonButton。代碼示例:

pPanel1->Add(new CMFCRibbonGallery(ID_RIBBON_PBTN_1, _T("Embedded"), 0, 0, IDB_RIBBON_PALETTE_1, 64)); 

CMFCRibbonGallery* pBtn2 = new CMFCRibbonGallery(ID_RIBBON_PBTN_2, _T("Button"), 1, 1, IDB_RIBBON_PALETTE_1, 64); 
pBtn2->SetButtonMode(); 
pBtn2->SetAlwaysLargeImage(); 
pPanel1->Add(pBtn2); 

(從RibbonGadgets樣品取)

[編輯:這是錯誤的答案。檢查(並upvote)我的其他答案。我只留下這個沒有迴應的評論。]

+0

由於thomiel,據我所知,畫廊項目是可以是大型的圖像。但是,除非文本位於位圖中,否則不能爲上述圖片中的每個項目分配標題。是對的嗎?而使用CMFCRibbonButton,子項目可以在圖像上獲得標題。只有圖像必須很小。所以我想知道是否有一種方法可以讓CMFCRibbonButton子項目獲得大圖片。 – ali

+0

另外,您是否有機會認識任何優秀的Ribbon編輯器? – ali

+0

你可能是對的。所以再給我一次嘗試...... :)我使用功能包VS2008。據我所知,VS2010有一位絲帶設計師,但我不知道它是一個好的設計師。 – thomiel