16,467
社区成员
发帖
与我相关
我的任务
分享
if(pthis && ::IsWindow(pthis->GetSafeHwnd())
{
CRect rcClient;
CDC* pDC = pthis->GetDC();
pthis->GetClientRect(rcClient);
CImage img0,img1,img2,img3,img4,img5,img6,img7,img8;
img0.Load("D:\\Application\\vs2010\\matlabdrawfile\\drawCurve0.png");
img0.Draw(pDC->m_hDC, 0,0,rcClient.Width()/3 ,rcClient.Height()/3);
CRect rect0(0,0,rcClient.Width()/3,rcClient.Height()/3);
pthis->InvalidateRect(rect0,FALSE);
pthis->ReleaseDC(); //别忘了这个,GetDC与ReleaseDC要成对儿出现,以免造成资源泄露
}
这也只是从代码的健壮性方面来改,由于你使用了线程,显然逻辑层面是有问题的,比如你至少要在线程中去监视对话框关闭这么一个信号等等
另外,你这个线程是处理UI相关的,也不对啊,GUI程序不建议在子线程中去处理UI,子线程主要是负责数据处理(不管是跟UI相关还是无关,但尤其是跟UI相关的大数据处理),UI直接交给主线程去处理就好了