带图标工具栏的创建以及提示功能的添加
来源:互联网 发布:31周胎儿发育标准数据 编辑:程序博客网 时间:2024/06/14 15:58
一、带图标工具栏的创建:
第一步:将bmp位图或是ICON图标资源加入到资源视图中:我这里是bmp资源,添加资源时要按照你想要的顺序添加
第二步,在响应的头文件中定义CToolBar对象和CImageList对象:
private:CToolBar m_ToolBar;CImageList m_ImageList;
第三步,在对话框的初始化函数中进行带图标工具栏的初始化操作:
/*****带图标工具栏的添加*****/m_ImageList.Create(32,32,ILC_COLOR24|ILC_MASK,1,1);//创建图像列表CBitmap bmp;for (int i=0;i<9;i++)//向图像列表中添加图像{bmp.LoadBitmap(IDB_BITMAP1+i);m_ImageList.Add(&bmp,RGB(255,255,255));bmp.DeleteObject();}UINT BtnArray[10];//定义工具栏命令ID数组BtnArray[0]=IDB_BITMAP1;BtnArray[1]=IDB_BITMAP2;BtnArray[2]=IDB_BITMAP3;BtnArray[3]=IDB_BITMAP4;BtnArray[4]=IDB_BITMAP5;BtnArray[5]=IDB_BITMAP6;BtnArray[6]=ID_SEPARATOR;BtnArray[7]=IDB_BITMAP7;BtnArray[8]=IDB_BITMAP8;BtnArray[9]=IDB_BITMAP9;m_ToolBar.CreateEx(this);//创建工具栏,默认置顶m_ToolBar.SetButtons(BtnArray,10);m_ToolBar.SetSizes(CSize(60,60),CSize(32,32));//设置工具栏按钮大小和按钮图像大小m_ToolBar.SetButtonText(0,_T("文件管理"));//设置工具栏文本m_ToolBar.SetButtonText(1,_T("屏幕监控"));m_ToolBar.SetButtonText(2,_T("超级终端"));m_ToolBar.SetButtonText(3,_T("进程管理"));m_ToolBar.SetButtonText(4,_T("服务管理"));m_ToolBar.SetButtonText(5,_T("卸载主机"));m_ToolBar.SetButtonText(7,_T("生成客户"));m_ToolBar.SetButtonText(8,_T("程序设置"));m_ToolBar.SetButtonText(9,_T("关于软件"));m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);//设置工具栏按钮显示图标RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//显示工具栏
进行以上三步后,带图标的工具栏就已经设置完成,如下图:
另:
1、如果你插入的是ICON图标资源不是位图资源,只是向图像列表中添加图像的方法有所改变:
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON_LINE));
二、
如果你不想要设置工具栏中图标按钮的文本,而要使用提示(ToolTip)功能,可以进行如下几步操作:
创建带图标的工具栏时,以上几步基本不变,唯一改变的是创建工具栏对象时第三个参数要添加:CBRS_TOOLTIPS样式。
m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_TOOLTIPS | CBRS_SIZE_DYNAMIC ,CRect(0, 0, 0, 0));
其次,在头文件中添加智能提示控件变量的声明:
CToolTipCtrl m_pToolTipCtrl;
创建一个智能提示控件:
if( !m_pToolTipCtrl.Create(this) ) return FALSE;
其次,向智能提示控件中添加需要具有提示功能的控件,并启用目标窗口的TOOLTIP属性:
m_pToolTipCtrl.AddTool(GetDlgItem(IDI_ICON_CANCEL),LPSTR_TEXTCALLBACK);m_pToolTipCtrl.AddTool(GetDlgItem(IDI_ICON_EXIT),LPSTR_TEXTCALLBACK);m_pToolTipCtrl.AddTool(GetDlgItem(IDI_ICON_LINE),LPSTR_TEXTCALLBACK);m_pToolTipCtrl.AddTool(GetDlgItem(IDI_ICON_OK),LPSTR_TEXTCALLBACK);m_pToolTipCtrl.AddTool(GetDlgItem(IDI_ICON_PEN),LPSTR_TEXTCALLBACK);m_pToolTipCtrl.AddTool(GetDlgItem(IDI_ICON_RECT),LPSTR_TEXTCALLBACK);m_pToolTipCtrl.AddTool(GetDlgItem(IDI_ICON_SAVE),LPSTR_TEXTCALLBACK);EnableToolTips(TRUE);
最后,添加如下消息映射:
1、映射函数的定义:
afx_msg BOOL ToolTipFxn(UINT id, NMHDR *pNMHDR, LRESULT *pResult);
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, &CClipScreenToolDlg::ToolTipFxn)
BOOL CClipScreenToolDlg::ToolTipFxn(UINT id, NMHDR *pNMHDR, LRESULT *pResult){UNREFERENCED_PARAMETER(id); TOOLTIPTEXT *pTTT=(TOOLTIPTEXT *)pNMHDR; UINT_PTR nID=pNMHDR->idFrom; if (pTTT->uFlags && TTF_IDISHWND) { switch (nID) { case IDI_ICON_LINE:pTTT->lpszText = _T("画线");break;case IDI_ICON_RECT:pTTT->lpszText = _T("矩形");break;case IDI_ICON_PEN:pTTT->lpszText = _T("画笔");break;case IDI_ICON_CANCEL:pTTT->lpszText = _T("撤销");break;case IDI_ICON_SAVE:pTTT->lpszText = _T("保存");break;case IDI_ICON_EXIT:pTTT->lpszText = _T("关闭");break;case IDI_ICON_OK:pTTT->lpszText = _T("结束");break;default:break; } //return TRUE;} *pResult = 0; return TRUE; }
以上一、二两部分的说明使用的是两个不同的例子。
0 0
- 带图标工具栏的创建以及提示功能的添加
- MFC手动创建带图标的工具栏
- VC 创建具有提示功能的工具栏
- 在基于对话框的MFC中添加工具栏以及工具栏提示信息并改变图标支持256色
- 工具栏的提示功能
- 添加工具栏的图标按钮
- EditText带图标的提示以及屏蔽特殊字符
- MyEclipse10 工具栏图标的添加与隐藏
- MyEclipse10 工具栏图标的添加与隐藏
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- WPF工具栏图标托盘图标的添加方法
- 在对话框中添加工具栏的提示
- 使用JPopupMenu作为提示以及创建带图像的菜单
- 工具栏图标的加载
- QT 如何向工具栏中添加漂亮的图标
- 用qt creator 怎么添加工具栏的图标?
- 【手册】字符串函数
- listview添加完headerView后position纠正
- opencv之查找轮廓---cvFindContours && cvDrawCountours 用法及例子
- 线性回归AndrewNg笔记
- solr5.3 如何配置使用UUID解决id覆盖问题
- 带图标工具栏的创建以及提示功能的添加
- 借助于git和github进行项目开发和管理
- Android中的XML drawable
- SVN在线安装
- LeetCode 77. Combinations
- 前端不为人知的一面——前端冷知识集锦
- iOS AttributedString
- pat-top 1001. Battle Over Cities
- 智慧警务指挥决策平台,助力平安城市升级