(!)MFC单文档创建子线程调用CDC画图,在子线程中加上延时后无法正确显示图形个数
(求救!)MFC单文档创建子线程调用CDC画图,在子线程中加上延时后无法正确显示图形个数
------解决方案--------------------
CDC *pDC 变了,
CDC *pDC=GetDC(); 是 临时 DC ,sleep 以后 ,可能变了。
你 查查。
------解决方案--------------------
线程函数返回值可以是void吗?以前没见过,不知道啊
//点击菜单项创建子线程
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吗?以前没见过,不知道啊