15,473
社区成员




//这个是将图绘制到屏幕上的线程,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);
}
}
}