Contact Sales

Call center available M-F 9:00 - 4:00 US Eastern Time.

Case Studies

Live Chat Inc.

LIVECHAT Software selected Xtreme Toolkit Professional with Visual C++ over many other...

Add a splitter popup button that doesn't disappear

Author: Kirk Stowell
Posted: November 16, 2007
Environment: Visual C++ MFC

If you have created a splitter popup button as shown below, it will disappear when the ‘Reset Toolbar’ button is clicked.

 pStandardBar->GetControls()->Add(xtpControlSplitButtonPopup, ID_BUTTON_POPUP);

If you use Customizable toolbars you must avoid dynamic creation of controls. You must use the ‘Xtreme Control Sub classing’ technique.  To add a splitter button do the following:

1. Add the button to your toolbar resource using the Visual Studio resource editor like so:

2. Using the resource editor, create a Popup menu with same command id as the toolbar button you just added.

3. Add the command handler ON_XTP_CREATECONTROL() to your CMainFrame message map.

 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)

 //{{AFX_MSG_MAP(CMainFrame)

 ...

 //}}AFX_MSG_MAP

 ON_XTP_CREATECONTROL()

 END_MESSAGE_MAP()

 

 int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)

 {

     if (lpCreateControl->bToolBar)

     {

         if (lpCreateControl->nID == ID_BUTTON_POPUP)

         {

             lpCreateControl->controlType = xtpControlSplitButtonPopup;

             return TRUE;

         }

     }

     return FALSE;

 }


4. Add the following line to your header file for CMainFrame:

 afx_msg int OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl);


Application screen shot showing splitter popup button: