为什么 BeginThread 创建的线程中的画图代码没有效果?

lwglucky 2014-09-26 12:10:03
如题,BeginThread创建了一个线程,在线程中 MovtoEx , Lineto画图代码没有显示效果。。如果代码移除线程外调用就没问题。
...全文
344 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lwglucky 2014-09-26
  • 打赏
  • 举报
回复
是Canvase. 大致代码如下: void StartGifPlay(HDC Hdc, WORD x, WORD y, TMemoryStream* str , bool bStream) //播放GIF动画 { Cs.Hdc = Hdc; //// Hdc为form上的一个 frmShow->img->Canvas->Handle ; BeginThread(0,0, (TThreadFunc )ShowImg,( LPVOID )(&Cs),0,0); //开启新进程以播放GIF } long __fastcall ShowImg(LPVOID pParam) { Cs * pcs = (Cs *)pParam; HDC dc = pcs ->Hdc ; MovetoEx(dc,0,0,0); Lineto(dc,100,100); <<===这两句绘图代码无效,界面上看不到效果 return 0; } ========= 如果把画图代码放在线程外就没问题。
ccrun.com 2014-09-26
  • 打赏
  • 举报
回复
没有代码的文字性故障描述是没有意义的。
缘中人 2014-09-26
  • 打赏
  • 举报
回复
涉及到vcl的更新,是不是应该用线程的那个 Synchronize

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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