工控编程吧
标题:
14.上位机VC MFC实现工具栏按钮在对话框中的提示功能
[打印本页]
作者:
qq263946146
时间:
2015-11-9 21:42
标题:
14.上位机VC MFC实现工具栏按钮在对话框中的提示功能
对话框工具栏的提示功能
功能展示
在文档视图的应用程序中,默认情况下,当要票在工具栏按钮上停留时,会出现一个工具提示条。但在对话框程序中,却没有这一功能,如何实现呢?此实例就实现了,效果如图
(, 下载次数: 4)
上传
点击文件名下载附件
要点提示
要想使工具栏有提示功能,需要同时具备两个条件,一是工具栏具有CBRS_TOOLTIPS风格,这再工具栏创建时便可实现。二是工具栏的父窗口得处理TTN_NEEDTEXT通知消息,所以在文档视图结构的应用程序中,只要是工具栏在创建时,添加了CBRS_TOOLTIPS风格,就能够显示 提示信息。
如果我们在对话框中添加 TTN_NEEDTEXT,还得手动添加消息映射代码
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify)
OnToolTipNotify是我们自定义气函数,原型如下
afx_msg BOOLOnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
函数中
Id 是发送消息的控件ID,当前无用,因为控件ID可以来自Pnmhdr;
pNMHDR 是一个NMHDR结构体指针,此结构体记录了发送消息的控件ID,句柄等信息;
pResult 表示结果代码指针, TTN_NEEDTEXT消息可以忽略此参数
实现功能
•1.新建一个对话框应用程序
•2.在对话框类中添加几个变量
• CToolBar m_wndToolBar;
• CString m_ToolText;
•3.添加一个工具栏资源IDR_TOOLBAR1 。
•4.在对话框类的OnInitDialog()中对这些变量进行初始化
•5.实现函数功能OnToolTipNotify()
• //设置图象和按钮的大小,为了适当的演示按钮文本
• m_wndToolBar.GetToolBarCtrl().SetBitmapSize(CSize(16,16));
• m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(32,32));
• //设置按钮文本
• m_wndToolBar.SetButtonText(0,"新建");
• m_wndToolBar.SetButtonText(1,"打开");
• m_wndToolBar.SetButtonText(2,"保存");
• m_wndToolBar.SetButtonText(4,"剪切");
• m_wndToolBar.SetButtonText(5,"复制");
• m_wndToolBar.SetButtonText(6,"粘贴");
• m_wndToolBar.SetButtonText(8,"打印");
• m_wndToolBar.SetButtonText(10,"帮助");
• RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
•BOOL CGkbc8Dlg::OnToolTipNotify(UINTid, NMHDR *pNMHDR, LRESULT *pResult)
•{
• TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
• UINT nID =pNMHDR->idFrom; //获取工具栏按钮ID
• intindex = m_wndToolBar.GetToolBarCtrl().CommandToIndex(nID);//根据ID获取按钮索引
• m_wndToolBar.GetButtonText(index,m_ToolText);//获取按钮文本
• pTTT->lpszText=m_ToolText.GetBuffer(0);//设置显示的提示信息,可根据需要修改
• pTTT->hinst =AfxGetResourceHandle();
• return(TRUE);
•}
•6.最后当然是这函数对应的映射
• ON_NOTIFY_EX( TTN_NEEDTEXT, 0,OnToolTipNotify)
•
下面我们演示整个功能实现的过程
[iqiyi]http://player.video.qiyi.com/b3d55eac87d7e9cefd9aa23061d4576b/0/0/w_19rt8cyntx.swf-albumId=4862414409-tvId=4862414409-isPurchase=0-cnId=12[/iqiyi]
源码及视频教程下载
(仅电脑上可见)
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
•
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4