- CPaintDC dc(this); // device context for painting
- Graphics gr(dc.m_hDC); // Graphics to paint
- Rect rGdi;
- gr.GetVisibleClipBounds(&rGdi); // The same as the clip rect
- //创建缓冲区
- Bitmap clBmp(rGdi.Width, rGdi.Height); // Mem bitmap
- Graphics* grPtr = Graphics::FromImage(&clBmp); // As memDC
- //利用grPtr在clBmp缓冲区绘图
- grPtr->DrawImage(m_PngMeter,clock_Rect);
- grPtr->TranslateTransform(Pcenter.X,Pcenter.Y);
- grPtr->RotateTransform(i);
- grPtr->TranslateTransform(-Pcenter.X,-Pcenter.Y);
- grPtr->DrawImage(m_PngArrow,picRect);
- grPtr->ResetTransform();
- //将clBmp缓冲区绘制到窗口
- gr.DrawImage(&clBmp, rGdi);
<pre class="cpp" name="code"> delete grPtr;//注:使用完缓冲区后,一定要及时释放内才能,尤其是在OnPaint中,否则程序很快占满物理内存,崩溃!
联系客服