首页 > 编程语言 > 详细

MFC隐藏在黑暗之中的大坑

时间:2019-06-24 14:29:01      阅读:94      评论:0      收藏:0      [点我收藏+]

大坑一:CDC会随着窗口状态的改变而改变

void K5::OnPaint() {
    CDC *pDC=this->GetDC();  //CDC最好设为局部变量
    ...
    this->ReleaseDC(pDC);
}

void K5::OnBtnDown(){
    CDC *pDC=this->GetDC();  //注意,在这里的pDC的值和上一个函数的值是不一样的
    ...                      //最好传参过来,这样pDC就一样了
    this->ReleaseDC(pDC);
}

 

大坑二:OnPaint消息函数会一直刷新

void K5::OnPaint(){
    CPaintDC dc(this);  //这一句话必须在OnPaint消息函数里面开头第一句,不然会一直刷新

}

 

大坑三:GDI升高之谜

CDC *pDC->m_hDC=hdc;
//最好不要直接修改CDC的成员变量,不然GDI会莫名增加两个
//如果想要修改CDC的内容,最好用Bitblt或者Stretch函数来拷贝图像过去

 

MFC隐藏在黑暗之中的大坑

原文:https://www.cnblogs.com/k5bg/p/11076588.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!