读书人

(!)MFC单文档创建子线程调用CDC画图

发布时间: 2013-06-25 23:45:41 作者: rapoo

(求救!)MFC单文档创建子线程调用CDC画图,在子线程中加上延时后无法正确显示图形个数


//点击菜单项创建子线程
void CMyView::OnIdSc()
{
// TODO: Add your command handler code here
CDC *pDC=GetDC();
pthread = AfxBeginThread((AFX_THREADPROC)myf,(void*)pDC);
}
int i =10 ;//全局变量
//子线程
void myf(CDC *pDC)
{
for(int j=0;j<3;j++)
{
pDC->Rectangle(10,i,40,i+20);//画矩形
i = i +30;
_sleep(100);//去掉_sleep(100)后可以画出3个矩形,加上之后就只能画一个,但是i的值为3
}
}

MFC?多线程?绘图 多线程 MFC
[解决办法]
CDC *pDC 变了,
CDC *pDC=GetDC(); 是 临时 DC ,sleep 以后 ,可能变了。
你 查查。
[解决办法]
线程函数返回值可以是void吗?以前没见过,不知道啊

读书人网 >VC/MFC

热点推荐