www.pudn.com > source.rar > DropDownToolBar.cpp
// DropDownToolBar.cpp : implementation file
//
#include "stdafx.h"
#include "flashnow.h"
#include "DropDownToolBar.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDropDownToolBar
CDropDownToolBar::CDropDownToolBar()
{
p_MenuID=NULL;
}
CDropDownToolBar::~CDropDownToolBar()
{
if(p_MenuID)
delete [] p_MenuID;
}
BEGIN_MESSAGE_MAP(CDropDownToolBar, CToolBar)
//{{AFX_MSG_MAP(CDropDownToolBar)
// NOTE - the ClassWizard will add and remove mapping macros here.
//}}AFX_MSG_MAP
ON_NOTIFY_REFLECT(TBN_DROPDOWN,OnDropDown)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDropDownToolBar message handlers
BOOL CDropDownToolBar::LoadToolBar(UINT nID)
{
if(!CToolBar::LoadToolBar(nID))
return FALSE;
p_MenuID=new UINT [GetCount()];
for(int i=0;iiItem);
*result=TBDDRET_DEFAULT;
}
void CDropDownToolBar::OnDropDownButton(UINT nID)
{
int pos=CommandToIndex(nID);
if(!p_MenuID[pos])
return;
CRect rect;
GetItemRect(pos,&rect);
ClientToScreen(&rect);
CMenu Menu;
Menu.LoadMenu(p_MenuID[pos]);
CMenu* pMenu = Menu.GetSubMenu(0);
pMenu->TrackPopupMenu(TPM_RIGHTBUTTON, rect.left, rect.bottom, this);
}