**************问题求助,鸡鸡鸡鸡******************

LinuxBirdMan 2011-03-24 11:58:15
我在控件中开了一个线程,然后在线程中想往一个矩形里填充颜色,但是运行的时候,什么都没填充上去,求解答。

unsigned __stdcall CActiveXCtrl::ThreadOnDraw(void * pParam)
{
CActiveXCtrl* pThis = reinterpret_cast<CActiveXCtrl*>(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;
}
...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-03-24
  • 打赏
  • 举报
回复
绘图操作用通过OnPaint函数来完成
你可以在线程中改变控制绘制颜色的变量
然后发消息让主窗口更新
Bit_bbtt 2011-03-24
  • 打赏
  • 举报
回复
最好不要再线程中操作界面

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧