做点贡献,提供一个方法,利用消息实现3态位图按纽
目前网上的办法一般是重载,学vc半年了,从csdn做了大量不劳而获的亏心事,做点贡献这次。我这里提供一个用消息做的,写详细点,给初学者共享:
(基于对话框的)
假设有2个按纽,一个叫“退出”,一个叫“浏览”。
1:选择它们的owerdraw属性
2:定义2个 CBitmapButton 变量。
CBitmapButton m_exit;
CBitmapButton m_browse;
可以定义在头文件中。
3:在初始化中加入:
m_exit.AutoLoad(IDC_BUTTON_EXIT, this);
m_exit.LoadBitmaps(IDB_BITMAP_EXIT_NORMAL,IDB_BITMAP_EXIT_DOWN,IDB_BITMAP_EXIT_OVER,IDB_BITMAP_EXIT_GREY);
//第一个参数是正常状态位图,第二个是按下状态的,第三个是位于上方时的,第四个是不可用时的
m_browse.AutoLoad(IDC_BUTTON_BROWSE, this);
m_browse.LoadBitmaps(IDB_BITMAP_BROWSE_NORMAL,IDB_BITMAP_BROWSE_DOWN,IDB_BITMAP_BROWSE_OVER,IDB_BITMAP_BROWSE_GREY);
4:在cpp上面定义2个全局变量:
bool BROWSEreDraw = 0;
bool EXITreDraw = 0;
5:BOOL C ....Dlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_MOUSEMOVE)
{
if(pMsg->hwnd == GetDlgItem(IDC_BUTTON_EXIT)->m_hWnd)
{
if(!EXITreDraw)
{
GetDlgItem(IDC_BUTTON_EXIT)->SetFocus();
EXITreDraw = !EXITreDraw;
}
}
else if(pMsg->hwnd == GetDlgItem(IDC_BUTTON_BROWSE)->m_hWnd)
{
if(!BROWSEreDraw)
{
GetDlgItem(IDC_BUTTON_BROWSE)->SetFocus();
BROWSEreDraw = !BROWSEreDraw;
}
}
else
{
if(BROWSEreDraw )
{
BROWSEreDraw = !BROWSEreDraw ;
}
if(EXITreDraw)
{
EXITreDraw = !EXITreDraw;
}
GetDlgItem(IDC_OTHER)->SetFocus(); //将任意一个其他的控件获得焦点
}
}
.......................
}
结束了(应该没有漏掉什么吧),不用担心,没有闪烁。
相关推荐
基于springboot+vue的摄影作品社区(项目源码)
基于springboot+vue的摄影作品社区(项目源码) 系统采用前后端分离的 B/S 架构。后端基于 Spring Boot 2.7.2 与 Java 1.8 构建,以 MyBatis-Plus 完成数据访问、PageHelper 实现分页,用 MySQL 8 存储业务数据;身份认证采用 Sa-Token 轻量级框架并整合 JWT 令牌,配合 Redis 实现图形验证码缓存与会话存储;前端使用 Vue 3 与 Naive UI 构建界面,由 Vite 完成构建,看板统计图表基于 ECharts 渲染。系统面向普通用户与管理员两类角色:用户端提供注册登录、作品上传与归档、多条件检索浏览、作品集管理、分类与标签管理、摄影圈专题、回收站、个人设置与公告查看等功能;管理端提供数据看板、用户管理与公告管理等功能。
Vue基于springboot的乡村生态旅游平台_k2864o48毕业设计源码数据库.zip
Vue基于springboot的乡村生态旅游平台_k2864o48毕业设计源码数据库
Python3 datetime时区避坑指南
原生datetime.now()获取本地时间,不带时区属性,属于 naive时间,跨服务器比对会报错。带时区时间使用datetime.astimezone,强制绑定东八区时区。禁止手动加减8小时修改时差,夏令时更新会导致时间错误。时间计算:timedelta直接实现天数、小时增减,无需手动换算秒数。字符串解析使用strptime,格式化使用strftime,格式符号严格区分大小写,%Y四位年份、%y两位年份极易写错。线上时间异常大多源于时区不统一。 yc.ahsalar.com qsvsnks.yihucx.com tongjiang.xilaohan.com lq.aasmile.com xj.banutech.net
前端开发基于history.js的HTML5与HTML4浏览器兼容方案:单页应用无刷新历史状态管理技术实现-jcbbroJ3l1792421687
内容概要:本文系统介绍了如何利用history.js实现单页应用(SPA)在HTML5c与HTML4浏览器间s草错发的无缝历史状态管理。通过封装原生History API并在不支持的浏览器中自动降级为哈希路由,history.js解决了因浏览器兼容性导致的后退按钮失效、URL混乱等问题。文章详细讲解了其核心机制,包括状态对象管理、自动模式切换(HTML5 pushState vs HTML4 哈希)、状态数据持久化以及针,对Safari、IE等浏\览器的兼容性修复方案,并提供了从入门到实战的完整示例,涵盖初始化、事,件监听、页面加载及性能优化技巧。;jcbbroJ3l1792421687 www.kfshiye.com www.wap.kfstjx.com www.kuaicai-mro.com lianyingjs.com www.kdd888.com
MATLAB实现了约束感知混合水波和灰狼优化,用于作物规划。.zip
1.版本:matlab2014a/2019b/2024b 2.附赠案例数据可直接运行。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。


