Adding a drop down button control on toolbar
I have to add a button in one of the toolbar of my application which has a drop down arrow associated with it e.g
same as it is in the case of "New" button of standard toolbar in the Microsoft Outlook which has options like Mail Message,fax Message,Appointments etc associated with it.This control also has an icon assocaited with it.
This Control should have two options 1)send to Pocket PC and 2)Send to Palm
Re: Adding a drop down button control on toolbar
Read MSDN!!!!
Once your CToolBarCtrl object has been created, set the TBSTYLE_EX_DRAWDDARROWS style, using the following code:
m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
Set the TBSTYLE_DROPDOWN style for any new (InsertButton orAddButtons) or existing (SetButtonInfo) buttons that will be drop-down buttons. The following example demonstrates modifying an existing button in a CToolBarCtrl object:
TBBUTTONINFO tbi;
tbi.dwMask= TBIF_STYLE;
tbi.cbSize= sizeof(TBBUTTONINFO);
m_wndToolBar.GetToolBarCtrl().GetButtonInfo(ID_EDIT_CUT, &tbi);
tbi.fsStyle |= TBSTYLE_DROPDOWN;
m_wndToolBar.GetToolBarCtrl().SetButtonInfo(ID_EDIT_CUT, &tbi);
Add a WM_NOTIFY handler to the parent class of the toolbar object.
In the new handler, check for the TBN_DROPDOWN notification, using the following code:
#define lpnm ((LPNMHDR)lParam)
#define lpnmTB ((LPNMTOOLBAR)lParam)
switch(lpnm->code)
{
case TBN_DROPDOWN:
//drop down button was hit
//handle appropriately
. . .
return FALSE; //indicates the TBN_DROPDOWN
//notification was handled.
}
If the TBN_DROPDOWN notification has been sent, display the appropriate popup menu. The following code demonstrates one method:
CMenu menu;
VERIFY(menu.LoadMenu(IDR_MENU1));
CMenu* pPopup = menu.GetSubMenu(0);
ASSERT(pPopup != NULL);
pPopup->TrackPopupMenu(TPM_RIGHTALIGN |
TPM_RIGHTBUTTON, x, y, this);
Rating isn't important...But gurus respect it and keep high