This is possible for UI themes which support skinned window non-client areas. This is a trick and the CExtRibbonBar
control does not support such mode. You will need to create the CExtRibbonBar
-derived class and override the following virtual methods:
INT CExtRibbonPage::RibbonLayout_GetTabIntersectionHeight() const
INT CExtRibbonPage::RibbonLayout_GetTabLineHeight() const
INT CExtRibbonPage::RibbonLayout_GetBottomLineHeight() const
INT CExtRibbonPage::RibbonQuickAccessBar_GetBottomHeight() const
INT CExtRibbonPage::RibbonLayout_GetGroupHeight(
CExtRibbonButtonGroup * pGroupTBB
) const
INT CExtRibbonPage::RibbonLayout_GroupCaptionGetHeight(
const CExtRibbonButtonGroup * pGroupTBB
) const
All these methods should return zero value. If you are going to create ribbon in dialog, then your dialog should be based on the
CExtNCW
template class and it should invoke the
CWnd::RepositionBars( 0, 0xFFFF, 0 );
both at the end of the
OnInitDialog()
virtual method and in the
WM_SIZE
message handler if the resizing event type is not
SIZE_MINIMIZED
.
But even in this case the combo boxes of ribbon bar are not the combo box common controls. They are non-
HWND
UI elements. The
CExtCustomizeSite
class and based on it ribbon classes support the built-in text fields and combo fields inside toolbars, menus and ribbons. So, the combo boxes you can see in the
RibbonBar and
StyleEditor sample applications and not combo box windows - they are text/combo fields which can appear even inside popup menus and ribbon bar’s quick access toolbar embedded into window caption.