- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
MFC工具栏ToolBar按钮添加下拉菜单(转)
2010-07-0411:00
1.在MainFrm.cpp的intCMainFrame::OnCreate(LPCREATESTRUCTlpCreateStruct)函数末尾添加如下代码:
//为画图工具栏的按钮添加下拉菜单
m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
//取值TBSTYLE_EX_DRAWDDARROWS,可以为某一个按钮添加下拉按钮。
DWORDdwStyle=m_wndToolBar.GetButtonStyle(m_wndToolBar.CommandToIndex(ID_DRAW_LINE));
dwStyle|=TBSTYLE_DROPDOWN;//其中ID_DRAW_LINE是你要添加下拉菜单的按钮的ID
m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex(ID_DRAW_LINE),dwStyle);
2.新建你要在点击按钮ID_DRAW_LINE出现的下拉菜单,即在工程的Resourceview选择目录树的条目点击右键,插入新的Resouse:Menu,在这里我新建的Menu它的ID是IDR_POPUP_LINE,如下图所示:
3.在CMainFrame类的消息映射中(即MainFrm.cpp)加入下拉箭头的TBN_DROPDOWN消息映射:
ON_NOTIFY(TBN_DROPDOWN,AFX_IDW_TOOLBAR,OnToolbarDropDown)
如下:
BEGIN_MESSAGE_MAP(CMainFrame,CMDIFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_NOTIFY(TBN_DROPDOWN,AFX_IDW_TOOLBAR,OnToolbarDropDown)//此行即为新增的ON_NOTIFY消息映射
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
4.在MainFrame.h头文件中加入消息处理函数的声明:
afx_msgvoidOnToolbarDropDown(NMTOOLBAR*pnmh,LRESULT*plRes);
如下:
//Generatedmessagemapfunctions
protected:
//{{AFX_MSG(CMainFrame)
afx_msgintOnCreate(LPCREATESTRUCTlpCreateStruct);
afx_msgvoidOnToolbarDropDown(NMTOOLBAR*pnmh,LRESULT*plRes);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
5.在MainFrame.cpp文件中加入TBN_DROPDOWN消息处理的实现代码:
voidCMainFrame::OnToolbarDropDown(NMTOOLBAR*pnmtb,LRESULT*plr)
{
??CWnd*pWnd;
??UINTnID;
??switch(pnmtb-iItem)
??{
???caseID_DRAW_LINE://ID_DRAW_LINE即是你要添加下拉菜单的ToolBar按钮的ID
????pWnd=m_wndToolBar;
????nID=IDR_POPUP_LINE;//IDR_POPUP_LINE就是上面新制作的菜单ID,当然,如果你要添加多个下拉菜单,只要多加几个case就好了
????break;
???default:
????return;
??}
??CMenumenu;
??menu.LoadMenu(nID);
??CMenu*pPopup=menu.GetSubMenu(0);
??ASSERT(pPopup);
??CRectrc;
??pWnd-SendMessage(TB_GETRECT,pnmtb-iItem,(LPARAM)rc);
??pWnd-ClientToScreen(rc);
??pPopup-TrackPopupMen
您可能关注的文档
- 详解移动端html5页面长按实现高亮全选文本内容的兼容解决方.pdf
- COFF文件的格式,DSP学习着必看_coff文件格式资源-.doc
- 基于矢网的脉冲信号S参数测量.pdf
- 卫星通信抗干扰技术的发展趋势.doc
- 基于AD608芯片的对数中频低功耗接收机设计资源.pdf
- wireshark抓包实验之ICMPx英文.docx
- 官方IEEE期刊缩写名大全.pdf
- 数据挖掘(Data Mining)实验课I实验报告.doc
- IMX455AQK-K_Flyer英文说明文档.pdf
- 人工智能:语音合成及语音识别系统_语音人工智能资源-.pdf
- 浅谈android性能优化之启动过程(冷启动和热启动)资源-.pdf
- C#实现几十万级数据导出Excel及Excel各种操作实例_.pdf
- geom_tut_01_inclined_Ramp操作说明手册.pdf
- 三轴MEMS加速度计系列新增ADXL356和ADXL357两款器件.pdf
- 微机原理技术期未考A试题.doc
- 大数据管理机构设置与职能配置分析x_大数据职能配置分.docx
- 两列采样保持电路图设计分享.pdf
- C语言For循环试讲教案C语言循环结构实例教程资源.doc
- pytorch的梯度计算以及backward方法详解.pdf
- H264_Decoder_HDVICP2_ReleaseNo操作说明手册.pdf
原创力文档


文档评论(0)