大坑一: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函数来拷贝图像过去