VC 对话框程序添加工具栏按钮图标及其按钮tooltip
来源:互联网 发布:淘宝恩威牌倩影减肥片 编辑:程序博客网 时间:2024/06/05 10:08
注意:本人使用VC++2010开发环境进行测试。
在使用VC开发对话框程序时不像开发单文档程序和多文档程序那么方便,很多资源都需要自己手动添加。最近在开发一个程序时,想尝试在对话框程序里面添加工具栏 及其 按钮tooltip,于是便有了这篇文章,希望把经验总结下来以方便自己以后查询以及各位同仁查询!
一、首先建立一个对话框程序
1、添加工具栏资源,并在工具栏资源里添加几个按钮,并将按钮的width 和 height 改为24,也可以根据自己的需要更改尺寸,同时,还要为相应的按钮设置一个ID。具体操作如图:
二、创建工具栏
1、在***Dlg.h添加工具栏对象, 以及位图资源
private:CToolBar m_ToolBar;// 位图资源 CBitmap m_bitmap1; CBitmap m_bitmap2; CBitmap m_bitmap3; CImageList m_ImageList;
2、在OnInitDialog()函数里面添加以下代码,创建工具栏
if( !m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS ) ||!m_ToolBar.LoadToolBar(IDR_TOOLBAR1)){TRACE0("未能创建工具栏\n");AfxMessageBox(_T("未能创建工具栏\n"));return FALSE; // 未能创建}m_ToolBar.ShowWindow(SW_SHOW);//控件条定位RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);
3、载入几个24*24尺寸的位图,注意,该尺寸是根据上面按钮的尺寸而设定的。
4、在以上 第2 步后面的代码添加载入位图的代码,最终如图
if( !m_ToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS ) ||!m_ToolBar.LoadToolBar(IDR_TOOLBAR1)){TRACE0("未能创建工具栏\n");AfxMessageBox(_T("未能创建工具栏\n"));return FALSE; // 未能创建}m_ToolBar.ShowWindow(SW_SHOW);//控件条定位RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);m_bitmap1.LoadBitmapW(IDB_BITMAP_MULTIMETER);m_bitmap2.LoadBitmapW(IDB_BITMAP_PHONE);m_bitmap3.LoadBitmapW(IDB_BITMAP_SPEAKER);m_ImageList.Create(24,24, ILC_COLOR32 | ILC_MASK,0,0);m_ImageList.Add(&m_bitmap1, RGB(0, 0, 0));m_ImageList.Add(&m_bitmap2,RGB(0, 0, 0));m_ImageList.Add(&m_bitmap3,RGB(255, 255, 255));m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
至此,便已并运行程序,可以看到程序界面就有我们添加上句的工具栏按钮图标,如图:
以上已经实现了为工具栏按钮添加图标的功能,那如何为工具栏按钮添加tooltip功能能,如下图的效果:
接着就由本人继续介绍操作步骤:
1、在***Dlg.h 头文件添加 消息处理函数声明:
afx_msg BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult);// 工具条提示
2、在***Dlg.cpp添加消息映射
BEGIN_MESSAGE_MAP(CSageRemoteKeyTestDlg, CDialogEx) ......ON_NOTIFY_EX_RANGE(TTN_NEEDTEXT, 0, 0xffff, OnToolTipText)END_MESSAGE_MAP()
3、添加函数定义
BOOL ***Dlg::OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult){ TOOLTIPTEXT *pTTT=(TOOLTIPTEXT*)pNMHDR; UINT uID=pNMHDR->idFrom; // 相当于原WM_COMMAND传递方式的wParam(low-order), 在wParam中放的则是控件的ID。 if(pTTT->uFlags & TTF_IDISHWND) uID=::GetDlgCtrlID((HWND)uID); if(uID==NULL) return FALSE; switch(uID) { case IDOK:pTTT->lpszText= _T("按下此键开始测试"); break;case IDM_POWER_MULTIMETER: pTTT->lpszText= _T("电表配置"); break;case IDM_SHIELDINGBOX_COM: pTTT->lpszText= _T("串口配置"); break;case IDM_BEEP: pTTT->lpszText= _T("蜂鸣器配置"); break; } return TRUE;}
至此,编译运行程序就能实现上图的tooltip功能了!
0 0
- VC 对话框程序添加工具栏按钮图标及其按钮tooltip
- VC++对话框添加工具栏
- VC对话框添加工具栏
- vc 为对话框添加工具栏
- vc对话框中添加工具栏
- 如何更改添加工具栏按钮图标
- VC++为工具栏添加按钮
- VC工具栏按钮添加响应函数
- VC 对话框程序加工具栏
- VC++之对话框中添加工具栏
- VC++之对话框中添加工具栏
- VC++之对话框中添加工具栏
- VC++之对话框中添加工具栏
- VC++工具栏按钮手动添加响应函数
- [VC]基于对话框程序,自定义工具栏(支持真彩色图标,可添加文字)
- 【转】VC 对话框添加工具栏 以及RepositionBar 函数说明
- VC动态创建工具栏及工具栏上的按钮及为按钮添加消息响应函数
- 给工具栏上的按钮添加文字(VC)
- C++中sturct和class的区别
- ZOJ 1178 Booklet Printing(书本对折问题)
- TCP、UDP绑定同一端口通信的解释
- 黑马程序员——基础学习--- Io异常处理方法
- 阿里云部署Docker(4)----容器的使用
- VC 对话框程序添加工具栏按钮图标及其按钮tooltip
- vim 强大的配置
- Android开发之关于“Unable to add window - token null is not for an application ”的异常
- 腾讯数十亿广告的秘密武器:利用大数据实时精准推荐
- 收藏比较好的文章.博客
- 关于用Hibernate执行sql查询,字符字段类型只返回第一个字节的问题
- HDU 3874 Necklace(树状数组离线处理)
- 键盘的keycode
- 容器set