有关MFC中使用CButton类后位图按钮闪烁的问题
来源:互联网 发布:算法大数阶乘问题 编辑:程序博客网 时间:2024/05/22 06:15
刚开始写WINCE应用程序的时候,遇到了一个比较头疼的问题,那就是使用CButton类来做位图按钮时,点击按钮的时候会闪一下。
于是上网查了下,发现了很多人都遇到过这种问题,不过貌似都是不了了之。当然有人说这是没用双缓冲的缘故,不过我测试后发现用了双缓冲后问题并没有得到解决,只好接着找问题的原因。后来我发现只点击一个按钮的时候不会闪,但是几乎每次点击不同的按钮的时候就会闪,再进一步测试后我总算是发现了问题的原因:每次在点击不同按钮的时候,应用程序总是会把上一次点击过的按钮的背景给刷成白色,然后再用位图来填充的。既然找到了问题的原因,那解决问题就容易了。
为什么按钮的背景会被刷成白色呢?那是因为系统默认的画刷是白色的。所以只要把系统画刷设置成空画刷,就不会有出现这样的问题,解决方案如下:
响应WM_CTLCOLOR消息:
HBRUSH CXXXXDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
if(nCtlColor == CTLCOLOR_BTN)
{
hbr = (HBRUSH)GetStockObject(NULL_BRUSH);
}
return hbr;
}
这样问题就得到了解决~~~
- 有关MFC中使用CButton类后位图按钮闪烁的问题
- MFC 为按钮(CButton )添加位图
- mfc的CButton类
- MFC中位图按钮
- MFC的对话框中创建位图按钮
- MFC中位图按钮的实现方法:
- [MFC]传统控件介绍、CButton按钮类
- MFC中位图和位图按钮的方法
- CButton 按钮类的重写
- MFC 中位图的使用
- 关于MFC Cbutton按钮同时显示图标和文字的问题
- VC MFC按钮(CButton)控件
- VC/MFC按钮(CButton)控件
- VC MFC按钮(CButton)控件
- CButton控件:mfc自绘按钮类,1张图片显示多种状态的方法
- MFC中利用picture control控件设置闪烁按钮。(控件以加载bitmap位图为例)
- [MFC]传统控件:控件简介以及CButton按钮类
- 位图按钮的使用
- Getting Started With OData Part 2: Building an OData Services from Any Data Source
- 0-1背包问题,动态规划求解
- AggregationExceptions
- SoundPool&&mediaplayer播放音乐
- 图像的二值化分割,otsu类间方差法
- 有关MFC中使用CButton类后位图按钮闪烁的问题
- Liudmila Loglisci & Davide Caci (专辑)
- DX下的全屏显示模式
- c# 查询结果保存为Excel格式 TAB分割的TXT格式
- C++运算符重载
- 连连看
- 如何化在论坛回复中添加代码
- jstree 点箭头有效但点后面item无效的bug
- AggregationSuggestions