MFC单文档多线程画图时,怎么得到CDC 和 HDC画图的句柄。 cdc*pdc = this->getdc错了,我该怎么用
DWORDWINAPIDRAWTHREAD(LPVOIDPARAM){CDC*pDC=??HDC*hDC=??}...
DWORD WINAPI DRAWTHREAD(LPVOID PARAM)
{
CDC *pDC= ??
HDC *hDC= ??
} 展开
{
CDC *pDC= ??
HDC *hDC= ??
} 展开
6个回答
展开全部
把画图窗口的指针利用这个参数LPVOID PARAM传给线程。
CWnd *pWnd = (CWnd *)PARAM;
CDC *pDC = pWnd->GetWindowDC();
CWnd *pWnd = (CWnd *)PARAM;
CDC *pDC = pWnd->GetWindowDC();
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、使用全局变量,CDC *g_pDC = NULL;
在OnDraw中为其赋值。
在线程中判断g_pDC不为空,则执行函数体。
2、将pDC作为PARAM传进去。
3、使用全局变量theApp来获取所需的CDC。
在OnDraw中为其赋值。
在线程中判断g_pDC不为空,则执行函数体。
2、将pDC作为PARAM传进去。
3、使用全局变量theApp来获取所需的CDC。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
多线程直接调用dc在同一界面下画图,可能会出现错误,两个线程可能会冲突,建议参考一下msdn的例程mtgdi
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2011-09-03
展开全部
cdc *pdc=pWnd->GetDC()
HDC DC=pdc->GetSafeHwnd()
是这个意思?
HDC DC=pdc->GetSafeHwnd()
是这个意思?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询