MFC多线程中绘图的问题

BinboWang1987 2010-10-16 09:20:22
最近在写一个软件实现一边动态显示图片特效,一边可以做其他的工作,所以想到用多线程来实现,由于刚刚接触多线程,遇到了一个问题,下面是图片










我在线程中实现左上方小窗口的动态显示,当移动主窗口LedMultiMediaPlayer的时候,左上方小窗口的动态显示会停顿一下


//这个是将图绘制到屏幕上的线程,m_ThreadProc是一个结构体
DWORD WINAPI ThreadPaint(LPVOID pParam)
{
Graphics * CurGraphics=m_ThreadProc.CurGrphics;
Bitmap * bitmap=m_ThreadProc.bitmap;

while(1)
{
CurGraphics->DrawImage(bitmap,0,0);
Sleep(10);
}
}

//这是将图绘制到内存中的线程,本来我是将绘图到屏幕的工作也放在这个线程中的,由于有停顿现象,所以我将绘图到屏幕
//的工作用另一个线程实现,但还是有停顿现象
DWORD WINAPI ThreadProc(LPVOID pParam)
{
Graphics * MemGraphics=m_ThreadProc.MemGraphics;
Bitmap * bitmap=m_ThreadProc.bitmap;
int iWidth=m_ThreadProc.iWidth;
int iHeight=m_ThreadProc.iHeight;

Image image(_T("F:\\1.jpg"));

CreateThread(NULL,0,ThreadPaint,(LPVOID)&m_ThreadProc,NULL,NULL);

SolidBrush brush(Color(0,255,255));
while(1)
{
for(int i=0;i<iHeight;i++)
{
MemGraphics->DrawImage(&image,0,i,0,i,iWidth,1,UnitPixel);

Sleep(5);
}

for(int i=0;i<iHeight;i++)
{
MemGraphics->FillRectangle(&brush,0,iHeight-i-1,iWidth,1);

Sleep(5);
}
}
}
...全文
107 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15,473

社区成员

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

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