对话框程序中使用工具栏

前些日子一直在写一个小的软件,东西确实比较小,所以不想使用单文档的程序,其实也是因为对于单文档的程序感觉无从下手,还是对话框简单一些。

但是日子过了一段时间,当规划者怎样使用工具栏的时候,还是费了一番力气才搞定的。

小弟在图书馆借的一本书上给出了一种实现方案,感觉还不错,贴出来与大家分享一下!

首先声明图像列表对象和工具栏对象,即

 

然后下面的代码会实现在对话框程序里创建一个工具栏的效果,即

 

但是这样添加的工具栏不会自动生成按钮响应事件,需要我们自己去写事件响应函数了。

不过其实看一下MFC本身是怎么写的照葫芦画瓢就行了,只不过需要为每个按钮自定义一个ID的值。

首先为每个按钮自定义一个ID的值。

 

这些确实多了些,但是小弟是偷懒了,直接全部复制过来了。

不过看一下上面定义的那些IDI_ICON,IDR,IDS,IDC,IDD打头的宏定义就知道怎么回事了,其实在MFC中,自动为每个资源定义了宏。

然后在*.h中添加响应事件函数声明

 

还要在*.cpp文件中添加两部分内容,一部分是消息映射部分,另一部分就是真正实现函数的代码部分

 

根据处理函数和处理过程的不同,MFC主要处理三类消息:

 

  • Windows消息,前缀以“WM_”打头,WM_COMMAND例外。Windows消息直接送给MFC窗口过程处理,窗口过程调用对应的消息处理函数。一般,由窗口对象来处理这类消息,也就是说,这类消息处理函数一般是MFC窗口类的成员函数。
  • 控制通知消息,是控制子窗口送给父窗口的WM_COMMAND通知消息。窗口过程调用对应的消息处理函数。一般,由窗口对象来处理这类消息,也就是说,这类消息处理函数一般是MFC窗口类的成员函数。
  • 命令消息,这是来自菜单、工具条按钮、加速键等用户接口对象的WM_COMMAND通知消息,属于应用程序自己定义的消息。通过消息映射机制,MFC框架把命令按一定的路径分发给多种类型的对象(具备消息处理能力)处理,如文档、窗口、应用程序、文档模板等对象。能处理消息映射的类必须从CCmdTarget类派生。

 

实现部分相信用过按钮自动生成事件的童鞋们都知道怎么回事了,这里就不一一列出来了。

 

最后实现的效果如下,贴图:

界面稍微丑陋了一点,但是总算是实现了我们需要的功能了!

呵呵!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值