Forum
Please
Log In
to post a new message or reply to an existing one. If you are not registered, please
register.
NOTE: Some forums may be read-only if you are not currently subscribed to
our technical support services.
Subject |
Author |
Date |
|
Sergii Kh
|
Nov 23, 2009 - 2:08 PM
|
How can make one line label and edittextbox in ribbon interface. ProfUIS 2.85 for example: Name: ______
I try this code but, label is look like button
CExtRibbonNodeGroup * pRibbonGroupName = new CExtRibbonNodeToolGroup( ID_GROUP_NAME ); pRibbonGroup->InsertNode(0, pRibbonGroupName);
CExtCustomizeCmdTreeNode * pNodeName = new CExtRibbonNodeLabel(ID_LNAME, 0, 0, _T("Name:")); pRibbonGroupName->InsertNode(0, pNodeName);
CExtCustomizeCmdTreeNode *pNodeNameEditBox = new CExtRibbonNode( ID_NAME_ENTER ); pNodeNameEditBox->ModifyFlags( __ECTN_TBB_TEXT_FIELD ); pNodeNameEditBox->TextFieldWidthSet( 40 ); pRibbonGroupName->InsertNode(0, pNodeNameEditBox);
|
|
Sergii Kh
|
Nov 26, 2009 - 1:28 PM
|
Thank you. It works. Could you say how can I reduce distance between label and editbox?
|
|
Technical Support
|
Nov 27, 2009 - 1:23 PM
|
There are two solutions:
1) Create and use your own CExtRibbonNodeButton -derived class which instantiates your CExtRibbonButtonGroup button class. Your button class should implement the CExtRibbonButtonGroup::OnRibbonGetOuterGroupDistance() virtual method which returns required distances before/after group of buttons.
2) Override the CExtRibbonPage::_OnRibbonContentPaddingGetOuterGroupDistance() internal virtual method in your ribbon bar class. Return required distances for required group buttons.
In both cases you can even return negative distances.
|
|
Technical Support
|
Nov 26, 2009 - 2:08 AM
|
We inserted 3 groups with labels into the Clipboard group of buttons on the Home ribbon tab page in the RibbonBar sample application:
CExtRibbonNode * CMainFrame::_InitRibbonNode_Home_Clipboard()
{
CExtRibbonNodeGroup * pRibbonGroup =
new CExtRibbonNodeGroup( ID_RIBBON_PAGE_CLIPBOARD );
pRibbonGroup->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_LPCTSTR( _T("ZC") ) ), false );
VERIFY( pRibbonGroup->m_iconBig.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_PASTE_BIG) ) );
pRibbonGroup->m_iconBig.m_bmpNormal.Make32();
pRibbonGroup->m_iconBig.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
CExtCustomizeCmdScreenTip * pCmdScreenTip = new CExtCustomizeCmdScreenTip;
pCmdScreenTip->TextMainSet( _T("Clipboard") );
pRibbonGroup->CmdScreenTipAttach( pCmdScreenTip );
pRibbonGroup->SetTextInToolbar( _T("Clipboard") );
CExtRibbonNodeDialogLauncher * pRibbonDLB =
new CExtRibbonNodeDialogLauncher( ID_RIBBON_PAGE_CLIPBOARD );
pCmdScreenTip = new CExtCustomizeCmdScreenTip;
pCmdScreenTip->CaptionMainSet( _T("Clipboard") );
pCmdScreenTip->TextMainSet( _T("Show the Clipboard\nTask Pane.") );
pCmdScreenTip->BmpMainGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_CLIPBOARD_DLB_TIP_IMAGE) );
pCmdScreenTip->BmpMainGet().Make32();
pCmdScreenTip->BmpMainGet().AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
pRibbonDLB->CmdScreenTipAttach( pCmdScreenTip );
pRibbonDLB->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_LPCTSTR( _T("FO") ) ), false );
pRibbonGroup->InsertNode( NULL, pRibbonDLB );
///////////////////////////////////////////////////////////////////////
// BENGIN: NEW TEST CODE
for( int nTest = 0; nTest < 3; nTest ++ )
{
CExtRibbonNodeGroup * pTestGroup = new CExtRibbonNodeToolGroup( 123 );
pRibbonGroup->InsertNode( NULL, pTestGroup );
CExtRibbonNodeGroup * pTestGroupInner = new CExtRibbonNodeGroup( 123 );
pTestGroup->InsertNode( NULL, pTestGroupInner );
static LPCTSTR g_arrLabelTexts[3] = { _T("TestLabel1"), _T("TestLabel2"), _T("TestLabel3") };
CExtRibbonNodeLabel * pNodeIndentLabel = new CExtRibbonNodeLabel( 123, NULL, 0, g_arrLabelTexts[nTest] );
pTestGroupInner->InsertNode( NULL, pNodeIndentLabel );
CExtCustomizeCmdTreeNode * pTestTextField = new CExtRibbonNode( 123 );
pTestTextField->ModifyFlags( __ECTN_TBB_TEXT_FIELD /*|__ECTN_TBB_COMBO*/ );
INT nFontNameFieldWidth = g_PaintManager.GetPM()->UiScalingDo( 143, CExtPaintManager::__EUIST_X );
pTestTextField->TextFieldWidthSet( nFontNameFieldWidth );
pTestGroup->InsertNode( NULL, pTestTextField );
}
// END: NEW TEST CODE
///////////////////////////////////////////////////////////////////////
// pRibbonGroup->InsertNode( NULL, new CExtRibbonNodeDialogLauncher( ID_RIBBON_PAGE_CLIPBOARD ) );
// pRibbonGroup->InsertNode( NULL, new CExtRibbonNodeDialogLauncher( ID_RIBBON_PAGE_CLIPBOARD ) );
// pRibbonGroup->InsertNode( NULL, new CExtRibbonNodeDialogLauncher( ID_RIBBON_PAGE_CLIPBOARD ) );
// CExtSpinRibbonNode * pNodeSpin = new CExtSpinRibbonNode( 1234 );
// pRibbonGroup->InsertNode(
// NULL,
// pNodeSpin
// );
CExtRibbonNode * pNodePaste =
new CExtRibbonNode( ID_EDIT_PASTE, 0, NULL, 0, _T("Paste") );
pNodePaste->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’V’) ) ), false );
pNodePaste->RibbonILE_RuleArrayGet().RemoveAll();
VERIFY( pNodePaste->m_iconBig.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_PASTE_BIG) ) );
pNodePaste->m_iconBig.m_bmpNormal.Make32();
pNodePaste->m_iconBig.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
pCmdScreenTip = new CExtCustomizeCmdScreenTip;
pCmdScreenTip->CaptionMainSet( _T("Paste") );
pCmdScreenTip->TextMainSet( _T("Paste the contents\nof the Clipboard.") );
pCmdScreenTip->BmpMainGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_PASTE_BIG) );
pCmdScreenTip->BmpMainGet().Make32();
pCmdScreenTip->BmpMainGet().AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
pCmdScreenTip->CaptionSecondarySet( _T("Press F1 for more help.") );
pCmdScreenTip->BmpSecondaryGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_APP_ABOUT_16x16) );
pCmdScreenTip->BmpSecondaryGet().PreMultiplyRGBChannels( false );
pNodePaste->CmdScreenTipAttach( pCmdScreenTip, true );
pCmdScreenTip = new CExtCustomizeCmdScreenTip;
pCmdScreenTip->CaptionMainSet( _T("Paste") );
pCmdScreenTip->TextMainSet( _T("Click here for more options such as\npasting only the values or\nformatting.") );
pCmdScreenTip->BmpMainGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_PASTE_BIG) );
pCmdScreenTip->BmpMainGet().Make32();
pCmdScreenTip->BmpMainGet().AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
pCmdScreenTip->CaptionSecondarySet( _T("Press F1 for more help.") );
pCmdScreenTip->BmpSecondaryGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_APP_ABOUT_16x16) );
pCmdScreenTip->BmpSecondaryGet().PreMultiplyRGBChannels( false );
pNodePaste->CmdScreenTipAttach( pCmdScreenTip, false );
pRibbonGroup->InsertNode(
NULL,
pNodePaste
);
// g_CmdManager->CmdAllocPtr(
// g_CmdManager->ProfileNameFromWnd( m_hWnd ),
// ID_EDIT_PASTE )->m_sMenuText = "12";
pNodePaste->ModifyFlags( __ECTN_TBB_SEPARATED_DROPDOWN );
CExtCustomizeCmdTreeNode * pNodePaste_Paste =
new CExtCustomizeCmdTreeNode( ID_EDIT_PASTE, ID_EDIT_PASTE, NULL, 0, _T("Paste"), _T("&Paste") );
pNodePaste_Paste->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’P’) ) ), false );
pNodePaste->InsertNode(
NULL,
pNodePaste_Paste
);
CExtCustomizeCmdTreeNode * pNodePaste_Special =
new CExtCustomizeCmdTreeNode( ID_EDIT_PASTE_SPECIAL, ID_EDIT_PASTE_SPECIAL, NULL, 0, _T("Paste &Special...") );
pNodePaste_Special->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’S’) ) ), false );
pNodePaste->InsertNode(
NULL,
pNodePaste_Special
);
CExtCustomizeCmdTreeNode * pNodePaste_Hyperlink =
new CExtCustomizeCmdTreeNode( ID_EDIT_PASTE_AS_HYPERLINK, ID_EDIT_PASTE_AS_HYPERLINK, NULL, 0, _T("Paste as &Hyperlink") );
pNodePaste_Hyperlink->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’H’) ) ), false );
pNodePaste->InsertNode(
NULL,
pNodePaste_Hyperlink
);
// pRibbonGroup->InsertNode(
// NULL,
// new CExtRibbonNode // separator
// );
CExtRibbonNode * pNodeCopy =
new CExtRibbonNode( ID_EDIT_COPY, 0, NULL, 0, _T("Copy") );
pNodeCopy->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’C’) ) ), false );
//pNodeCopy->ModifyFlags( __ECTN_TBB_UNDO_REDO|__ECTN_TBB_SEPARATED_DROPDOWN );
pNodeCopy->RibbonILE_RuleRemoveLargeILV();
VERIFY( pNodeCopy->m_iconSmall.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_COPY_SMALL) ) );
pNodeCopy->m_iconSmall.m_bmpNormal.Make32();
pNodeCopy->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
pCmdScreenTip = new CExtCustomizeCmdScreenTip;
pCmdScreenTip->CaptionMainSet( _T("Copy") );
pCmdScreenTip->TextMainSet( _T("Copy the selection and\nput it on the Clipboard.") );
pNodeCopy->CmdScreenTipAttach( pCmdScreenTip );
pRibbonGroup->InsertNode(
NULL,
pNodeCopy
);
CExtRibbonNode * pNodeCut =
new CExtRibbonNode( ID_EDIT_CUT, 0, NULL, 0, _T("Cut") );
pNodeCut->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_TCHAR( _T(’X’) ) ), false );
pNodeCut->RibbonILE_RuleRemoveLargeILV();
VERIFY( pNodeCut->m_iconSmall.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_CUT_SMALL) ) );
pNodeCut->m_iconSmall.m_bmpNormal.Make32();
pNodeCut->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
pCmdScreenTip = new CExtCustomizeCmdScreenTip;
pCmdScreenTip->CaptionMainSet( _T("Cut") );
pCmdScreenTip->TextMainSet( _T("Cut the selection from the document\nand put it on the Clipboard.") );
pNodeCut->CmdScreenTipAttach( pCmdScreenTip );
pRibbonGroup->InsertNode(
NULL,
pNodeCut
);
CExtRibbonNode * pNodeClearFormatting =
new CExtRibbonNode( ID_EDIT_CLEAR, 0, NULL, 0, _T("Clear Formatting") );
pNodeClearFormatting->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( __EXT_MFC_SAFE_LPCTSTR( _T("FP") ) ), false );
pNodeClearFormatting->RibbonILE_RuleRemoveLargeILV();
VERIFY( pNodeClearFormatting->m_iconSmall.m_bmpNormal.LoadBMP_Resource( MAKEINTRESOURCE(ID_EDIT_CLEAR_SMALL) ) );
pNodeClearFormatting->m_iconSmall.m_bmpNormal.Make32();
pNodeClearFormatting->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
pCmdScreenTip = new CExtCustomizeCmdScreenTip;
pCmdScreenTip->CaptionMainSet( _T("Clear Formatting") );
pCmdScreenTip->TextMainSet( _T("Copy the formatting from one place\nand apply it to an other.\n\nUse this button to apply\nthe same formatting to multiple\nplaces in the document.") );
pCmdScreenTip->CaptionSecondarySet( _T("Press F1 for more help.") );
pCmdScreenTip->BmpSecondaryGet().LoadBMP_Resource( MAKEINTRESOURCE(ID_APP_ABOUT_16x16) );
pCmdScreenTip->BmpSecondaryGet().PreMultiplyRGBChannels( false );
pNodeClearFormatting->CmdScreenTipAttach( pCmdScreenTip );
pRibbonGroup->InsertNode(
NULL,
pNodeClearFormatting
);
return pRibbonGroup;
}
|
|
Sergii Kh
|
Nov 24, 2009 - 11:10 PM
|
I try use CExtRibbonNodeGroup but I will getting result in different lines. Name: __________ How change to get result in same line?
|
|
Technical Support
|
Nov 24, 2009 - 2:16 PM
|
You should create label and text field nodes inside a CExtRibbonNodeGroup group node instead of the CExtRibbonNodeToolGroup toolbar group node.
|
|