应用:主要有涉及绘图的显示问题,采用内存绘图,防止闪烁,
现在出现的问题是图是没有闪烁,只是在有弹出非模态对话框的时候,对话框被覆盖;
我现在的使用方法:采用一个线程来绘图,线程的函数大致如下:
DWORD CCutterDlg::UIThreadFunc(LPVOID pParam)
{
int Viewside=1;
//temp V
int i=0;
//Get windows pointer
HWND hDlg=::GetDlgItem(NULL,IDD_AAA_DIALOG);
HDC hdc=::GetWindowDC(hDlg);
CDC* pDC=CDC::FromHandle(hdc);
//Memory draw resource
CDC MemDC;
CBitmap MemBitmap;
MemDC.CreateCompatibleDC(pDC);
MemBitmap.CreateCompatibleBitmap(pDC,395,307);
CBitmap *pOldBit=MemDC.SelectObject(&MemBitmap);
MemDC.FillSolidRect(0,0,395,307,RGB(239,235,222));
CBitmap bmp1,bmp2,bmp3;
//根据不同的条件值对MemDC进行绘图操作
......
//拷贝MemDC到屏幕
pDC->BitBlt(284,160,395,307,&MemDC,0,0,SRCCOPY)
//释放资源
......
}
现在绘图没有问题,可以实时更新,只是弹出对话框不能正常显示(被绘图覆盖)!
把this作为参数传递给线程,不要在线程里获得hDIg