Contact Sales

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

Case Studies


eziparts selected Toolkit Pro with Visual C++ over many...

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 ‘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.








 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: