为CToolBar工具栏窗口按钮添加ICON图标需要注意的一点
来源:互联网 发布:jdk1.8源码下载官网 编辑:程序博客网 时间:2024/06/07 03:04
VC使用CToolBar类创建工具栏,例如一个SDI应用程序,在MFC应用程序框架自动生成的工具栏IDR_MAINFRAME基础上,可使用资源编辑器创建工具栏资源,步骤如下:
(1) 使用资源编辑器编辑工具栏IDR_MAINFRAME,删除所有自动生成的工具栏按钮,如新建、打开等
(2) 添加ID为ID_EXIT_BAR图标。
(3) 资源视图选中工程,右键【添加】->【添加资源】->【ICON】-> 【导入】,选择退出按钮图标exit.ico,其中exit.ico的大小为24X24,添加ICO资源,将ID改为IDI_EXIT。
(4) 为CMainFrame类添加成员变量CImageList m_ImageList;
(5) 修改CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数,添加如下代码:
m_ImageList.Create(24,24,ILC_COLOR32|ILC_MASK,1,1);
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_EXIT));
m_wndToolBar.GetToolBarCtrl().SetImageList(&m_ImageList);
m_wndToolBar.SetSizes(CSize(31,31),CSize(24,24));
CRect temp;
m_wndToolBar.GetItemRect(0,&temp);
m_wndToolBar.GetToolBarCtrl().SetButtonSize(CSize(temp.Width(),temp.Height()));
这样就为CToolBar工具栏的ID_EXIT_BAR按钮添加了一个大小为24X24的图标。方法不复杂,但需要注意的是设置工具按钮大小的函数SetSizes(),第一个参数CSize(31,31)设置的矩形只要需比第二个参数CSize(24,24)的x都至少要大7,y都至少要大6,否则会运行时会出现异常,原因是CToolBar::SetSizes()的原型如下:
// CToolBar
void CToolBar::SetSizes(SIZE sizeButton, SIZE sizeImage)
{
ASSERT_VALID(this);
// sizes must be non-zero and positive
ASSERT(sizeButton.cx > 0 && sizeButton.cy > 0);
ASSERT(sizeImage.cx > 0 && sizeImage.cy > 0);
// button must be big enough to hold image
// + 7 pixels on x
// + 6 pixels on y
ASSERT(sizeButton.cx >= sizeImage.cx + 7);
ASSERT(sizeButton.cy >= sizeImage.cy + 6);
if (::IsWindow(m_hWnd))
{
// set the sizes via TB_SETBITMAPSIZE and TB_SETBUTTONSIZE
VERIFY(SendMessage(TB_SETBITMAPSIZE, 0, MAKELONG(sizeImage.cx, sizeImage.cy)));
VERIFY(SendMessage(TB_SETBUTTONSIZE, 0, MAKELONG(sizeButton.cx, sizeButton.cy)));
Invalidate(); // just to be nice if called when toolbar is visible
}
else
{
// just set our internal values for later
m_sizeButton = sizeButton;
m_sizeImage = sizeImage;
}
}
(6) 为ID_EXIT_BAR添加消息相应函数,进行相关处理,这样就完成了工具栏按钮呢图标及其消息响应函数的添加。
ON_COMMAND(ID_EXIT_BAR, &CMainFrame::OnExitProgramme)//退出程序
- 为CToolBar工具栏窗口按钮添加ICON图标需要注意的一点
- 添加工具栏的图标按钮
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- qt中添加资源文件以及添加菜单图标、工具栏中菜单的快捷方式、窗口以及对话框的icon
- 为Qt的 应用程序添加Icon图标
- CToolBar::SetButtonInfo 更改工具栏图标
- vs2010 添加删除工具栏资源的上图标按钮
- VC++为工具栏添加按钮
- 为按钮添加图标
- 给工具栏按钮添加图标和文字
- 为你的IOS程序添加ICON图标
- VC动态创建工具栏及工具栏上的按钮及为按钮添加消息响应函数
- vs为QT程序添加icon图标
- 怎样为工具栏按钮添加字
- 为Fckeditor添加自定义工具栏按钮
- 为自定义工具栏按钮添加消息响应函数
- 添加libxml tree.h需要注意的一点
- Hadoop-2.6.0集群HA搭建
- inline-block总结
- 计算机字节对齐
- 《第一行代码-Android》学习笔记(二十三)
- Codeforces 514E Darth Vader and Tree DP + 矩阵快速幂
- 为CToolBar工具栏窗口按钮添加ICON图标需要注意的一点
- LeetCode(2) Add Two Numbers实现
- CVS导出所有项目提交注释的Eclipse插件(类似于svn的showhistory)
- iOS应用如何实现64位的支持
- android的UI开发中如何确定登陆界面
- html+css实现图片流动
- Java设计模式-9-访问者模式
- 面试题:求a,b两种方法
- 优先级与链接属性。详解 static 与 extern 关键字。