热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

请问工具条按钮怎么指定按下的图片和状态?

我的工具条CToolBarm_wndToolBar位于一个CReBarm_wndReBar上面,工具条添加位图资源如下:CImageListimg;img.Create(16,16,
我的工具条CToolBar m_wndToolBar位于一个CReBar m_wndReBar上面,工具条添加位图资源如下:
CImageList img;
img.Create(16, 16, ILC_COLOR8|ILC_MASK,4,4);//设置"热"位图
img.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
img.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);
img.Detach();

img.Create(16, 16, ILC_COLOR8|ILC_MASK, 4,4);//设置"冷"位图
img.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
img.Add(AfxGetApp()->LoadIcon(IDI_ICON4));
m_wndToolBar.GetToolBarCtrl().SetImageList(&img);
img.Detach();

//四个按钮
UINT IDArray[] = {IDC_A, IDC_B, IDC_C, IDC_D};   
m_wndToolBar.SetButtons(IDArray, sizeof(IDArray)/sizeof(UINT)); 

我现在希望是当用户在按钮IDC_A上点击鼠标的时候,按钮按下状态,并且位图显示为IDI_ICON1,当用户再次点击该按钮时,按钮恢复弹起状态,并且位图为IDI_ICON2,请教该怎

么实现?

11 个解决方案

#1


自绘吧,绘制时检测按钮的CHECKED状态,分别显示ICON1和ICON2

#2


有个风格好象是BS_PUSHLIKE

#3


BS_PUSHLIKE
按一下沉下去的界面,再按一下,弹上来的界面。

#4


工具栏按钮有三种状态图片,分别用三个ImageList,可以通过CToolBarCtrl类的SetDisabledImageList、SetHotImageList、SetImageList来设置。

#5


综合楼上的说法就能实现了,一个是类型要为push型,一个是图片要对应上。
不过这个工具条就不能用默认的了,只能自己生成一个工具条,然后往上放控件,就和窗口一样处理。
我建议你找一个已经封装好的工具条控件来用,这样会简单些。

#6


使用OnUpdate_Command_UI消息处理程序可以实现控件界面的更新
使用GetCheck可以查看控件的按下状态

#7


自会来得快!检测按钮的状态就可以了!

#8


引用 4 楼 cnzdgs 的回复:
工具栏按钮有三种状态图片,分别用三个ImageList,可以通过CToolBarCtrl类的SetDisabledImageList、SetHotImageList、SetImageList来设置。

#9


4楼正解,具体可以参考下面地址:
http://blog.csdn.net/primer_programer/archive/2008/08/01/2755158.aspx

#10


我是楼主,不好意思这三天没上网。谢谢大家热心答复,现在还是不可以
1.我的四个按钮是这样放到工具条上去的: 
UINT IDArray[] = {IDC_A, IDC_B, IDC_C, IDC_D};  
m_wndToolBar.SetButtons(IDArray, sizeof(IDArray)/sizeof(UINT)); 
大家说设置BS_PUSHLIKE属性,这个设置是对工具条而言还是对按钮而言呢?我实验了一下不行。
2.SetDisabledImageList是设置不可用时候图片,而我当前需要的是按钮按下去是一种图片,按钮弹起来后是另外一种图片呢。我写了一个Demo,用了大家的方法都不成功。

#11


引用 6 楼 antimatterworld 的回复:
使用OnUpdate_Command_UI消息处理程序可以实现控件界面的更新 
使用GetCheck可以查看控件的按下状态


要是对话框的这个好像是不行。
通过m_wndToolBar调用CToolBarCtr,然后调用CToolBarCtr的Enable()可以是按钮有效或者无效,这样自动会显示图片了。


推荐阅读
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了设计师伊振华受邀参与沈阳市智慧城市运行管理中心项目的整体设计,并以数字赋能和创新驱动高质量发展的理念,建设了集成、智慧、高效的一体化城市综合管理平台,促进了城市的数字化转型。该中心被称为当代城市的智能心脏,为沈阳市的智慧城市建设做出了重要贡献。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 本文介绍了一些Java开发项目管理工具及其配置教程,包括团队协同工具worktil,版本管理工具GitLab,自动化构建工具Jenkins,项目管理工具Maven和Maven私服Nexus,以及Mybatis的安装和代码自动生成工具。提供了相关链接供读者参考。 ... [详细]
  • 本文介绍了在Windows系统上使用C语言命令行参数启动程序并传递参数的方法,包括接收参数程序的代码和bat文件的编写方法,同时给出了程序运行的结果。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • 模板引擎StringTemplate的使用方法和特点
    本文介绍了模板引擎StringTemplate的使用方法和特点,包括强制Model和View的分离、Lazy-Evaluation、Recursive enable等。同时,还介绍了StringTemplate语法中的属性和普通字符的使用方法,并提供了向模板填充属性的示例代码。 ... [详细]
  • 本文介绍了Codeforces Round #321 (Div. 2)比赛中的问题Kefa and Dishes,通过状压和spfa算法解决了这个问题。给定一个有向图,求在不超过m步的情况下,能获得的最大权值和。点不能重复走。文章详细介绍了问题的题意、解题思路和代码实现。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
author-avatar
天通金1980
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有