CProgressCtrl::SetBarColor无效的缘由

写一个格斗游戏,想用CProgressCtrl作血条和魔法条,需要设置颜色,网上找到2种本质一样的方法:

// 创建进度条
m_leftHp.Create(WS_CHILD | WS_VISIBLE | PBS_SMOOTH, CRect(80, 20, 400, 45), this, 123); 

方法1:

m_leftHp.SendMessage(PBM_SETBKCOLOR, 0, RGB(10, 10, 10));

方法2:

m_leftHp.SetBarColor(RGB(255, 0, 0));

说这些代码放到OnCreate()里,我照例做了都不行,在网上搜了N边,问了几个网站无果的情况下,到MSDN找CProgressCtrl::SetBarColor函数,发现Example里有段注释:

// Set the progress bar color to red, green, blue, or
// the system default. The SetBarColor method has an
// effect only if the Windows system theme is Classic.

Classic Style……我忽然明白了,之前为了创建的按钮什么的好看点,在stdafx.h里添加了如下代码:

// 使用带主题的控件
//#if defined _M_IA64 // 安腾平台
//#pragma comment(linker, "/MANIFESTDEPENDENCY:" //"\"type='Win32' " //"name='Microsoft.Windows.Common-Controls' version='6.0.0.0' " //"processorArchitecture='IA64' " //"publicKeyToken='6595B64144CCF1DF'\"")
//#elif defined _M_AMD64 // 64位平台
//#pragma comment(linker, "/MANIFESTDEPENDENCY:" //"\"type='Win32' " //"name='Microsoft.Windows.Common-Controls' version='6.0.0.0' " //"processorArchitecture='AMD64' " //"publicKeyToken='6595B64144CCF1DF'\"")
//#elif defined _M_IX86 // 32位平台
//#pragma comment(linker, "/MANIFESTDEPENDENCY:" //"\"type='Win32' " //"name='Microsoft.Windows.Common-Controls' version='6.0.0.0' " //"processorArchitecture='X86' " //"publicKeyToken='6595B64144CCF1DF'\"")
//#elif defined _M_ARM // ARM平台
//#pragma comment(linker, "/MANIFESTDEPENDENCY:" //"\"type='Win32' " //"name='Microsoft.Windows.Common-Controls' version='6.0.0.0' " //"processorArchitecture='ARM' " //"publicKeyToken='6595B64144CCF1DF'\"")
//#else // 其它平台
//#pragma comment(linker, "/MANIFESTDEPENDENCY:" //"\"type='Win32' " //"name='Microsoft.Windows.Common-Controls' version='6.0.0.0' " //"processorArchitecture='*' " //"publicKeyToken='6595B64144CCF1DF'\"")
//#endif // MANIFEST

这样设置后,就不是Classic Style了,取之,进度条就有颜色了……

可是……如何在不改变风格的情况下设置进度条颜色呢?我还没找到答案……

CProgressCtrl::SetBarColor无效的缘由,布布扣,bubuko.com

时间: 2024-08-09 14:30:21

CProgressCtrl::SetBarColor无效的缘由的相关文章

自绘CProgressCtrl进度条控件,支持自定义显示文本和进程百分比信息

[cpp] view plain copy // CXProgressCtrl 头文件 #pragma once // CXProgressCtrl class CXProgressCtrl : public CProgressCtrl { DECLARE_DYNAMIC(CXProgressCtrl) public: CXProgressCtrl(); virtual ~CXProgressCtrl(); typedef enum _ALIGN_TEXT_ { ALIGN_LEFT = 0x0

记weblogic JDBC 'No operations allowed after statement closed' 缘由

平台应用开发人员向我们平台报了一个issue,说在测试他们应用的时候遇到一个奇怪的问题,系统报了undefinedexception(开发人员自定义的exception,捕捉了jpa exception之后发现无法处理的情况下就抛出未定义异常),他们贴出了weblogic里面报出的异常栈信息: <Sep 17, 2014 7:56:45 AM SAST> <Error> <org.hibernate.transaction.JDBCTransaction> <BE

拒绝无效加班 !

文 / IDO老徐 是的,由于版本紧急发布,需要技术支撑,老徐今天在公司陪同项目组加了个班.一天下来,毫无成就感,明显的无效加班. 各种坑,各种混乱,各种不爽-虽然整个过程有持续集成,自动打包.部署.发布.校验.单元测试.接口测试.自动化测试,但是依然坑多多.本质来讲,还是团队协作问题,还是项目经理问题,还是技术团队本身技术短板问题. 从老徐个人角度来讲,本身不提倡加班. 如果一个团队老是加班,或者你个人老是加班. 要么团队协作效率问题,要么你个人能力问题,要么你时间管理问题要么管理者项目节奏把

HTTP 400 错误 - 请求无效 (Bad request)

在ajax请求后台数据时有时会报 HTTP 400 错误 - 请求无效 (Bad request);出现这个请求无效报错说明请求没有进入到后台服务里: 原因:1)前端提交数据的字段名称或者是字段类型和后台的实体类不一致,导致无法封装: 2)前端提交的到后台的数据应该是json字符串类型,而前端没有将对象转化为字符串类型: 解决方案: 1)对照字段名称,类型保证一致性 2)使用stringify将前端传递的对象转化为字符串    data: JSON.stringify(param)  ;

windows 10 smb,添加网络位置,输入的文件夹似乎无效

在windows 10中遇到一个现象,在"添加一个网络位置"的时候,弹出"输入的文件夹似乎无效.请选择另一个",我在这里是需要连接到Linux上的smb指定目录,经其它机子测试,smb服务器正常,输入的参数也正常.从smb服务器日志中也没有发现异常现象. 经过多次尝试,发现应该是在访问网络位置的时候,使用的用户及密码不对.由于登录了微软账户,默认使用微软用户进行访问的,所以导致无法访问. 解决方法: 1.改为添加"映射网络驱动器": 2.勾选&q

【iOS】Xcode 插件安装后无效

今天把 Xcode 升级到 7.3.1,发现插件安装后无效…… 原因:苹果要求加入UUID证书从而保证插件的稳定性. 解决方法: 1. 查看Xcode的UUID 在终端输入以下命令: defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID 复制 Xcode 的 UUID 2. 打开xcode插件所在的目录: ~/Library/Application Support/Developer/Shar

安装SQl 2008为SQL Server代理服务提供的凭据无效

sql server 2008 代理服务提供的凭据无效 sql server 2008 代理服务提供的凭据无效 在Windows Server 2008安装SQL Server 2008出现的问题: 安装时在"服务器配置"环节出现以下问题: 为sql server代理服务提供的凭据无效 为sql server服务指定的凭据无效 为analysis services服务提供的凭据无效 为reporting services服务提供的凭据无效 为integration services服务

解决VNC中tab键无效的方法

http://ubuntuforums.org/archive/index.php/t-1771058.html I accidentally discovered a fix for this while trying to solve a different problem.edit~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-keyboard-shortcuts.xmlfind the line <property name="&l

mybatis查询oracle ’无效的列索引‘和ORA-00911’无效的字符‘错误

1.Caused by: java.sql.SQLException: 无效的列索引 参考文献:http://bbs.csdn.net/topics/300179772 配置的sql语句写错了 select distinct '#{pkgName}' as pkgName, '#{appName}' as appName, version as versionName from stat_dim_version where appkey=#{appKey} order by version de