工具栏使用
来源:互联网 发布:农村淘宝站点查询 编辑:程序博客网 时间:2024/05/18 22:44
一、使用位图创建工具栏
1.头文件定义
CToolBar m_ToolBar;
2.BOOL CCreateToolBarDlg::OnInitDialog()
{// TODO: Add extra initialization hereUINT array[11];for (int i = 0;i<11;i++){if (i==3 || i==7 || i==9)array[i]= ID_SEPARATOR; //第4、8个按钮为分隔条elsearray[i]=i+1001;}m_ToolBar.Create(this);m_ToolBar.SetButtons(array,11);m_ToolBar.LoadBitmap(IDB_BITMAP1); //加载位图m_ToolBar.SetSizes(CSize(24,24),CSize(16,16)); //设置按钮和按钮位图大小RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);return TRUE; // return TRUE unless you set the focus to a control}
3.添加消息响应
声明单击处理函数
afx_msg void OnNew();
添加消息映射
ON_COMMAND(1001, OnNew)
单击处理函数
void CCreateToolBarDlg::OnNew(){MessageBox("工具栏按钮单击事件");}
二、使用图标创建工具栏
1.头文件定义
CToolBar m_ToolBar;//工具栏对象CImageList m_ImageList;//列表视图对象
2.BOOL CCreateToolBarDlg::OnInitDialog()
{// TODO: Add extra initialization here//创建图像列表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个按钮为分隔条elsearray[i] = i+1001;}m_ToolBar.Create(this);m_ToolBar.SetButtons(array,11);//设置工具栏按钮的索引//关联图像列表m_ToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);m_ToolBar.SetSizes(CSize(40,40),CSize(32,32)); //设置按钮和图标的大小RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//显示工具栏return TRUE; // return TRUE unless you set the focus to a control}
三.使用工具栏资源创建工具栏
BOOL CCreateToolBarDlg::OnInitDialog(){// TODO: Add extra initialization here//创建工具栏m_ToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_SIZE_DYNAMIC | CBRS_BORDER_TOP);m_ToolBar.LoadToolBar(IDR_TOOLBAR1); //加载工具栏资源//设置图象和按钮的大小m_ToolBar.GetToolBarCtrl().SetBitmapSize(CSize(16,16));m_ToolBar.GetToolBarCtrl().SetButtonSize(CSize(24,24));RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);return TRUE; // return TRUE unless you set the focus to a control}
四、设置工具栏按钮提示
只要鼠标停留在一个工具栏按钮上,就会显示出这个按钮的功能描述可以通过TTN_NEEDTEST消息的处理函数OnToolTipNotify实现,然后调用SetButtonText方法设置工具栏按钮文本
1.SetButtonText
BOOL SetButtonText(int nlndex,LPCTSTR lpszText);nIndex:按钮命令ID
lpszText:按钮显示文本
然后在OnToolTipNotify消息处理函数中获得当前按钮文本,并在提示窗口中显示出来,获得按钮文本可以使用GetButtonText方法。
2.GetButtonText
CString GetButtonText(int nLndex)const;void GetButtonText(int nIndex,CString&rString)const;
nIndex:按钮索引
rString:用于接收文本按钮
五、具有提示功能的工具栏
1.新建对话框,导入八个图标资源
2.对话框头文件声明变量
CToolBar m_ToolBar;CImageList m_ImageList;CString m_TipText;
3.对话框OnInitDialog创建工具栏
// TODO: Add extra initialization here//创建图像列表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个按钮为分隔条elsearray[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);return TRUE; // return TRUE unless you set the focus to a control
4.对话框头文件声明OnToolTipNotyfy函数
afx_msg BOOL OnToolTipNotify( UINT id, NMHDR * pNMHDR, LRESULT * pResult );
5.添加映射
ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipNotify)
6.添加处理函数
BOOL CToolTipDlg::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.代码
http://download.csdn.net/detail/greless/9854446
阅读全文
0 0
- 工具栏使用
- 工具栏使用
- 工具栏的使用
- 自由自在地使用工具栏
- 256色工具栏使用
- 01--工具栏的使用
- 工具栏使用示例
- MFC 工具栏的使用
- UIToolBar工具栏的使用
- MFC工具栏的使用
- 工具栏ToolBar的使用
- 使用Toolbar工具栏
- AutoCAD属性工具栏的使用
- 自由自在地使用工具栏(zz)
- 使用Max SDK定制工具栏
- 对话框程序中使用工具栏
- 分页工具栏PagingToolBar的使用
- Ext使用:GridPanel之工具栏
- mysql 父类查询所有子类以及从子类查询父类
- Struts2多方法实现登录过滤拦截
- Android关于软键盘弹出遮盖了原来界面的布局控件
- 四大组件之BroadcastReceiver(广播接收者)
- Android编译时报错Error:Connection timed out: connect. If you are behind an HTTP proxy, please......
- 工具栏使用
- js 导出 excel 文件
- 获取本地内存状态值
- Android 之 Material Design(二)—BottomNavigationView
- 2017网易春招 工作安排(dfs)
- Python选择排序算法
- <Shader>简单的纹理坐标滚动(水波模型)
- 纯CSSt实现照片墙效果
- ECMAScript6学习笔记