码迷,mamicode.com
首页 > 其他好文 > 详细

CProgressCtrl::SetBarColor无效的缘由

时间:2014-06-14 06:04:30      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:mfc   progress bar   

写一个格斗游戏,想用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

CProgressCtrl::SetBarColor无效的缘由

标签:mfc   progress bar   

原文地址:http://blog.csdn.net/npu_wy/article/details/30224963

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!