Mfc 如何重新绘制功能区UI元素
我正在做一个基于MDI环境的MFC功能区编程 我想在运行时更改MFC功能区库按钮的元素 因此,我在运行时使用Mfc 如何重新绘制功能区UI元素,mfc,windows-ribbon-framework,Mfc,Windows Ribbon Framework,我正在做一个基于MDI环境的MFC功能区编程 我想在运行时更改MFC功能区库按钮的元素 因此,我在运行时使用CMFCToolBarImage类中的SetPallete方法创建了一个HBITMAP对象 我的代码如下 CMFCRibbonGallery* pGallery = (CMFCRibbonGallery*)pRibbon->FindByID(ID_BUTTON_LABEL_CONTROL_GALLERY); CMFCToolBarImages test; test.SetImageS
CMFCToolBarImage
类中的SetPallete
方法创建了一个HBITMAP
对象
我的代码如下
CMFCRibbonGallery* pGallery = (CMFCRibbonGallery*)pRibbon->FindByID(ID_BUTTON_LABEL_CONTROL_GALLERY);
CMFCToolBarImages test;
test.SetImageSize(t);
test.AddImage(hBitmap, 0);
pGallery->Clear();
pGallery->SetPalette(test);
pGallery->RedrawIcons();
当我运行此代码时,功能区库按钮被删除,但库按钮中没有任何元素
奇怪的是,当我最小化/最大化窗口时,按钮上的图标是可见的
如果不最小化/最大化窗口,图标如何可见?
谢谢。尝试并调用
CMFCRibbonBar::RecalcLayout
,此函数强制重新计算并重新绘制完整的功能区布局。尝试并调用CMFCRibbonBar::RecalcLayout
,此函数强制重新计算并重新绘制完整的功能区布局。RecalcLayout()
有时是不够的。在这种情况下,使用forceRecalLayout()
,这样就可以了。recalLayout()
有时还不够。在这种情况下,使用ForceRecalcLayout()
,就可以了