如何在IE工具栏里添加一个具有弹出式菜单的按钮? 你试一试:在按钮上加一个POP菜单行不行!!!不行,就得通过代码实现了!那可得花时间去实现了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 或者那位大侠有在IE里添加一个工具条的Plug-ins源代码,万望 mail 小弟一份,谢拉![email protected] MSDN里搜索 Shell,IShellBrowser...看里面的专题. to iZap我早找过了,还是摸不着头绪 :( int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { .............................. m_wndToolBar.GetToolBarCtrl().SetButtonWidth(50, 150); m_wndToolBar.ModifyStyle (0,TBSTYLE_FLAT | TBSTYLE_TRANSPARENT); m_wndToolBar.SetButtonInfo( 8 , ID_DRAWSTYLE ,TBSTYLE_BUTTON|TBSTYLE_DROPDOWN, 7 ); ........................................}mainframe.h 中添加 afx_msg void OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult);mainframe.cpp中:BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd) 。。 ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnDropDown)END_MESSAGE_MAP()void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult){ NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct; CRect rect; m_wndToolBar.GetToolBarCtrl().GetRect(pNMToolBar->iItem, &rect); rect.top = rect.bottom; ::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft()); if(pNMToolBar->iItem == ID_DRAWSTYLE) { CMenu menu; CMenu* pPopup; menu.LoadMenu(IDR_MENU1); pPopup = menu.GetSubMenu(0); pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd()); } else{ CMenu menu; CMenu* pPopup; menu.LoadMenu(IDR_MENU2); pPopup = menu.GetSubMenu(0); pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd()); }} alamb(把握今生) 兄:代码很精彩,可对我的问题并不适用,我不是在自己的软件的工具栏上加 DropMenuButton,而是在 Internet Explorer 的工具栏上添加按钮,我想是要通过 COM 和 IE 自身的接口才好实 ^^^^^^^^^^^^^^^^^^现。无论如何,非常感谢你给我提供的帮助! IShellBrowser->SetToolbarItems(TBBUTTON, n, FCT_MERGE); 我记得在MFC中有几个宏可以控制向IE浏览中添加工具栏和各种按钮,如收藏和历史(只要用宏就可以)不知是哪几个宏,(我曾经见过不过当时没记下来)。有谁知道? 小问题,紧急求助!!!!!! 大家快来看看说说在武汉VC++程序员的月薪一般是多少呀。 改变EDIT控件的属性,怎么杨改成只读! 请问如何动态生成一个CListCtrl?(急) f1book的addin如何使用?? 请教一个内存操作的问题(70分) 哪里有<深入浅出MFC>的下载呀? 做毕业设计时,(我问了好几遍了) VC中如何实现数据类型转换? 把单文档做成控件后不能响应鼠标消息 如何在vc中通过IDispatch接口控制AutoCAD R14/2000,并用vc处理的结果绘图 急救:如何用我的登录程序替换掉WINDOWS原来的登录程序?如何动态更改主机的IP地址?
[email protected]
我早找过了,还是摸不着头绪 :(
{
..............................
m_wndToolBar.GetToolBarCtrl().SetButtonWidth(50, 150);
m_wndToolBar.ModifyStyle (0,TBSTYLE_FLAT | TBSTYLE_TRANSPARENT);
m_wndToolBar.SetButtonInfo( 8 , ID_DRAWSTYLE ,TBSTYLE_BUTTON|TBSTYLE_DROPDOWN, 7 );
........................................
}mainframe.h 中添加
afx_msg void OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult);mainframe.cpp中:
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
。。
ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnDropDown)
END_MESSAGE_MAP()void CMainFrame::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult)
{
NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct;
CRect rect;
m_wndToolBar.GetToolBarCtrl().GetRect(pNMToolBar->iItem, &rect);
rect.top = rect.bottom;
::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft());
if(pNMToolBar->iItem == ID_DRAWSTYLE)
{
CMenu menu;
CMenu* pPopup;
menu.LoadMenu(IDR_MENU1);
pPopup = menu.GetSubMenu(0);
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd());
}
else{
CMenu menu;
CMenu* pPopup;
menu.LoadMenu(IDR_MENU2);
pPopup = menu.GetSubMenu(0);
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_LEFTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd());
}
}
代码很精彩,可对我的问题并不适用,我不是在自己的软件的工具栏上加 DropMenuButton,
而是在 Internet Explorer 的工具栏上添加按钮,我想是要通过 COM 和 IE 自身的接口才好实
^^^^^^^^^^^^^^^^^^
现。
无论如何,非常感谢你给我提供的帮助!