创建动态工具栏并设置工具栏按钮提示

简介: 1、创建对话框程序,导入8个图标资源。 2、在对话框头文件中声明变量,代码如下: CToolBar m_ToolBar; CImageList m_ImageList; CString  m_TipText;   3、在对话框中oninitdialg函数中创建工具栏,如下: //创建图像列表 m_ImageList.

1、创建对话框程序,导入8个图标资源。

2、在对话框头文件中声明变量,代码如下:

CToolBar m_ToolBar;
 CImageList m_ImageList;
 CString  m_TipText;

 

3、在对话框中oninitdialg函数中创建工具栏,如下:

//创建图像列表
 m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);
 //向图像列表中添加图标
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON5));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON6));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON7));
 m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON8));
 UINT array[11];
 for(int i=0;i<11;i++)
 {
  if(i==3 || i==7 || i==9)
   array[i] = ID_SEPARATOR; //第4、8、10个按钮为分隔条
  else
   array[i] = i+1001;
 }
 m_ToolBar.Create(this);
 m_ToolBar.SetButtons(array,11);
 m_ToolBar.SetButtonText(0,"新建");
 m_ToolBar.SetButtonText(1,"打开");
 m_ToolBar.SetButtonText(2,"保存");
 m_ToolBar.SetButtonText(4,"剪切");
 m_ToolBar.SetButtonText(5,"复制");
 m_ToolBar.SetButtonText(6,"粘贴");
 m_ToolBar.SetButtonText(8,"打印");
 m_ToolBar.SetButtonText(10,"帮助");
 //关联图像列表
 m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
 m_ToolBar.SetSizes(CSize(40,50),CSize(32,32)); //设置按钮和图标的大小
 m_ToolBar.EnableToolTips(TRUE);
 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

 

4、在对话框头文件中声明OnToolTipNotify函数,代码如下:

afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );

 

5、在对话框的源文件中添加ON_NOTIFY_EX映射宏,如下:

ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify)

6、添加消息处理函数OnToolTipNotify的实现部分,如下:

BOOL CToolDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
 TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
 UINT nID =pNMHDR->idFrom; //获取工具栏按钮ID
 if(nID)
 {
  UINT nIndex = m_ToolBar.CommandToIndex(nID); //根据ID获取按钮索引
  if(nIndex != -1)
  {
   m_ToolBar.GetButtonText(nIndex,m_TipText);     //获取工具栏文本
   pTTT->lpszText = m_TipText.GetBuffer(m_TipText.GetLength()); //设置提示信息文本
   pTTT->hinst = AfxGetResourceHandle();
   return TRUE;
  }
 }
 return FALSE;
}

 

7、运行结果。

技术改变世界! --狂诗绝剑
目录
相关文章
点击按钮,新增输入框,再点击按钮,删除输入框
点击按钮,新增输入框,再点击按钮,删除输入框
58 0
|
开发者
jeDate日期控件的使用以及选中后点确定按钮关闭功能
jeDate日期控件的使用以及选中后点确定按钮关闭功能
164 0
|
JavaScript 前端开发
49EasyUI 窗口- 自定义带有工具条和按钮的对话框
49EasyUI 窗口- 自定义带有工具条和按钮的对话框
48 0
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
|
XML 数据格式
AS中按钮不显示问题
AS中按钮不显示问题
|
前端开发 JavaScript
两种方式实现css取消页面鼠标双击选中文字或单击拖动选中文字的效果
两种方式实现css取消页面鼠标双击选中文字或单击拖动选中文字的效果
561 0
tab栏切换制作(点击那一栏显示那一栏的内容,其他栏的内容隐藏)
tab栏切换制作(点击那一栏显示那一栏的内容,其他栏的内容隐藏)
tab栏切换制作(点击那一栏显示那一栏的内容,其他栏的内容隐藏)
|
搜索推荐
PyQt5 技巧篇-参数控制窗体右上角只显示关闭按钮实例演示
PyQt5 技巧篇-参数控制窗体右上角只显示关闭按钮实例演示
589 0
PyQt5 技巧篇-参数控制窗体右上角只显示关闭按钮实例演示

热门文章

最新文章