Professional UI Solutions
Site Map   /  Register
 
 

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.

Forums » Prof-UIS Tech Support » About __ECTN_TBB_SEPARATED_DROPDOWN Collapse All
Subject Author Date
tera t Dec 19, 2007 - 9:22 PM

Hello.

A frame is not drawn with __ECTN_TBB_SEPARATED_DROPDOWN either.
http://www.yukai.jp/~ifreeta/20071220/image02.jpg

http://www.yukai.jp/~ifreeta/20071220/image01.jpg

Should I declare it in CExtRibbonNodeToolButton?

Technical Support Dec 21, 2007 - 12:18 PM

We failed to reproduce this problem. We inserted your code into the CMainFrame::_InitRibbonNode_Home_Clipboard() method in the RibbonBar sample but nothing wrong happened:

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 );

//    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 ) );

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 );
                                          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
            );

////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////

#define ID_FG_LINE                  40000
#define ID_FG_LINES                 40001

CExtRibbonNode * pNodeGrid = new CExtRibbonNode( 9999 );

    pNodeGrid->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( _T(’L’) ), false );

    pNodeGrid->SetCmdID ( ID_FG_LINE , true );
    pNodeGrid->RibbonILE_RuleRemoveLargeILV();

    pNodeGrid->m_iconSmall.m_bmpNormal.Make32();
    pNodeGrid->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );

    pNodeGrid->ModifyFlags( 
        __ECTN_DISPLAY_TEXT_AND_IMAGE|        
        __ECTN_TBB_AUTOCHANGE_ID     |        
        __ECTN_TBB_SEPARATED_DROPDOWN        
    );

    pRibbonGroup->InsertNode(
        NULL,
        pNodeGrid
    );

    {
        CExtCustomizeCmdTreeNode * pTempNode = NULL;
        CExtCmdIcon cIconTmp;

//        VERIFY( cIconTmp.m_bmpNormal.
  //          LoadBMP_Resource( MAKEINTRESOURCE(ID_FG_LINE_SMALL) ) );
        cIconTmp.m_bmpNormal.Make32();
        cIconTmp.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
        pTempNode = new CExtCustomizeCmdTreeNode(
            ID_FG_LINE , 
            ID_FG_LINE , 
            NULL, 0,
            _T("LINE"), 
            _T("LINE"), 
            _T("LINE"), 0L, &cIconTmp );
        pTempNode->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( _T(’N’) ), false );
        pNodeGrid->InsertNode( NULL, pTempNode );

 //       VERIFY( cIconTmp.m_bmpNormal.
   //         LoadBMP_Resource( MAKEINTRESOURCE(ID_FG_LINES_SMALL) ) );
        cIconTmp.m_bmpNormal.Make32();
        cIconTmp.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
        pTempNode = new CExtCustomizeCmdTreeNode(
            ID_FG_LINES , 
            ID_FG_LINES , 
            NULL, 0,
            _T("LINES"), 
            _T("LINES"), 
            _T("LINES"), 0L, &cIconTmp );
        pTempNode->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( _T(’N’) ), false );
        pNodeGrid->InsertNode( NULL, pTempNode );
      }

////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////


//    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;
}


Technical Support Dec 20, 2007 - 11:09 AM

Could you tell us how do you initialize and handle the split button in the ribbon bar demonstrated on these 2 screenshots or how to reproduce this problem in our sample applications?

tera t Dec 20, 2007 - 5:17 PM

Hello.

Is a sample code necessary?
Or must not I do such how to use?

-----------------------------------------------------------------------
    CExtRibbonNode * pNodeGrid = new CExtRibbonNode( 9999 );

    pNodeGrid->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( _T(’L’) ), false );

    pNodeGrid->SetCmdID ( ID_FG_LINE , true );
    pNodeGrid->RibbonILE_RuleRemoveLargeILV();

    pNodeGrid->m_iconSmall.m_bmpNormal.Make32();
    pNodeGrid->m_iconSmall.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );

    pNodeGrid->ModifyFlags(
        __ECTN_DISPLAY_TEXT_AND_IMAGE|        
        __ECTN_TBB_AUTOCHANGE_ID     |        
        __ECTN_TBB_SEPARATED_DROPDOWN        
    );

    pRibbonGroup->InsertNode(
        NULL,
        pNodeGrid
    );

    {
        CExtCustomizeCmdTreeNode * pTempNode = NULL;
        CExtCmdIcon cIconTmp;

        VERIFY( cIconTmp.m_bmpNormal.
            LoadBMP_Resource( MAKEINTRESOURCE(ID_FG_LINE_SMALL) ) );
        cIconTmp.m_bmpNormal.Make32();
        cIconTmp.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
        pTempNode = new CExtCustomizeCmdTreeNode(
            ID_FG_LINE ,
            ID_FG_LINE ,
            NULL, 0,
            _T("LINE"),
            _T("LINE"),
            _T("LINE"), 0L, &cIconTmp );
        pTempNode->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( _T(’N’) ), false );
        pNodeGrid->InsertNode( NULL, pTempNode );

        VERIFY( cIconTmp.m_bmpNormal.
            LoadBMP_Resource( MAKEINTRESOURCE(ID_FG_LINES_SMALL) ) );
        cIconTmp.m_bmpNormal.Make32();
        cIconTmp.m_bmpNormal.AlphaColor( RGB(255,0,255), RGB(0,0,0), 0 );
        pTempNode = new CExtCustomizeCmdTreeNode(
            ID_FG_LINES ,
            ID_FG_LINES ,
            NULL, 0,
            _T("LINES"),
            _T("LINES"),
            _T("LINES"), 0L, &cIconTmp );
        pTempNode->CmdKeyTipSet( new CExtCustomizeCmdKeyTip( _T(’N’) ), false );
        pNodeGrid->InsertNode( NULL, pTempNode );

    }
-----------------------------------------------------------------------