关于网友提出的“ 问题求助,鸡鸡鸡鸡”问题疑问,本网通过在网上对“ 问题求助,鸡鸡鸡鸡”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题: 问题求助,鸡鸡鸡鸡描述:
我在控件中开了一个线程,然后在线程中想往一个矩形里填充颜色,但是运行的时候,什么都没填充上去,求解答。
unsigned __stdcall CActiveXCtrl::ThreadOnDraw(void * pParam)
{
CActiveXCtrl* pThis = reinterpret_cast(pParam);
pThis->m_bOnDrawThreadOn = true;
pThis->NewBrush.CreateSolidBrush(RGB(100,100,100));
int i = 0;
while(pThis->m_bOnDrawThreadOn)
{
::GetWindowRect(pThis->hWnd, &pThis->ret);
CDC* dc = pThis->GetDC();
CRect rt;
rt.left = pThis->ret.left;
rt.top = pThis->ret.top;
rt.bottom = pThis->ret.top + 240;
rt.right = pThis->ret.left + 320;
dc->FillRect(&rt,&pThis->NewBrush);
Sleep(100);
}
_endthreadex(0);
return 0;
}
解决方案1:
绘图操作用通过OnPaint函数来完成
你可以在线程中改变控制绘制颜色的变量
然后发消息让主窗口更新