现在的位置: 首页 > 综合 > 正文

MFC重绘控件使CPU占用100%解决方法

2014年09月05日 ⁄ 综合 ⁄ 共 462字 ⁄ 字号 评论关闭

今天写想重绘CButton控件,于是重写了OnPaint函数,结果看CPU 50%(因为我是双核,如果单核估计就是100%了)经过调试发现 OnPaint函数一直在执行,没有发生重绘消息时也会执行。不知道MFC的机制怎么会事,后来新建一个工程,添加OnPaint函数,默认代码,发现没事,注释掉 CPaintDC dc(this);这句后 又是50%。这才发现,MFC应该是用CPaintDC dc(this);这句来判断是否处理了OnPaint消息(个人认为)

/*********************************************************** 事隔多年 更新一下 **************************************************************************/

原来windows底层在调用了Invaildate后会发送一个WM_PAINT的消息给DC,如果没有调用BeginPaint的话,这个WM_PAINT消息会一直触发。

参看出处:来自百度空间

抱歉!评论已关闭.