CMFCToolBarButton动态切换位图
来源:互联网 发布:c语言n不为0的表达式 编辑:程序博客网 时间:2024/06/04 19:08
CMFCToolBarButton中有时候要用不同的图标表示不同的状态,那么如何改变CMFCToolBarButton的位图或者图标呢?
这个问题今天困扰了我一天?查了一天的资料终于解决了。
问题:
图中红色圆形中的图标在程序初始化时是灰色的,但是当我点击连接设备并成功后图标变为绿色,代表表连接成功。
实现方法:
1、在创建CMFCToolBar工具栏时
//创建串口工具栏if (!m_wndSerialPortToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC, CRect(1,1,1,1), IDR_TOOLBAR_SERIALPORT) ||!m_wndSerialPortToolBar.LoadToolBar(IDR_TOOLBAR_SERIALPORT, 0, 0, TRUE, IDB_SERIALPORT_COOL, 0, IDB_SERIALPORT_HOT)){TRACE0("未能创建工具栏\n");return -1; // 未能创建}要添加两个资源,一个是IDB_SERIALPORT_HOT,一个是IDB_SERIALPORT_COOL
2、需要添加按钮的消息映射。
在头文件中添加:afx_msg void OnBnClickedButtonStatueIcon();
在实现文中添加:
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
ON_BN_CLICKED(ID_BUTTON_SERIALPORT_STATUEICON, &CMainFrame::OnBnClickedButtonStatueIcon)
END_MESSAGE_MAP()
以及
void CMainFrame::OnBnClickedButtonStatueIcon()
{
}
3、添加状态切换的消息映射
头文件中添加:afx_msg void OnUpdateMainmenuOncommandStatueIcon(CCmdUI *pCmdUI);
实现文件中添加:
BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
ON_UPDATE_COMMAND_UI(ID_BUTTON_SERIALPORT_STATUEICON, &CMainFrame::OnUpdateMainmenuOncommandStatueIcon)
END_MESSAGE_MAP()
以及
void CMainFrame::OnUpdateMainmenuOncommandStatueIcon(CCmdUI *pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(m_bOnlineStatue);
}
4、在头文件中添加一个BOOl变量m_bOnlineStatue,由于3中的函数是自动触发的,所以只要改变m_bOnlineStatue的值,就可以任意控制按钮上的图标是灰是亮了。
OK,完美解决!
- CMFCToolBarButton动态切换位图
- 动态位图
- 动态位图
- 【MFC动态创建按钮,并在按钮上实现位图的切换显示】
- 动态显示BMP位图
- vc++ 动态加载位图
- android 动态加载位图
- MFC 动态加载bmp位图
- 在对话框中动态显示位图
- 动态改变Picture控件上的位图
- 动态改变工具条中按钮的位图
- android 游戏 自定义动画 动态位图
- WTL动态创建STATIC静态位图控件
- 动态切换窗体风格
- 动态切换图片
- table动态切换
- 图片动态切换
- Android动态切换菜单
- AngularJS-模板和数据绑定
- 鲜果电商的一些思考
- 语音识别基本原理介绍------dnn-hmm续
- You have an error in your SQL syntax;
- Keepalived+MySQL双主单写实现高可用性
- CMFCToolBarButton动态切换位图
- ALAssetsLibrary
- chrome扩展调试:background.html如何调试?
- 在任意目录执行某个命令的设置方法
- QT显示框架嵌入Vs控制台工程
- 语音识别基本原理介绍之gmm-hmm续
- Spring MVC+hibernate+Spring的框架搭建中遇到的问题总结
- 分享:微软老兵眼中的“创业微软”一文
- 使用jquery Validate的时候验证出错的提示显示位置问题