| 代码: |
void CMyView::Draw(const TRect& aRect) const { CWindowGc& gc = SystemGc(); TRect rect = Rect(); gc.Clear(rect); for (int i=0; i<100; i+=2) { gc.DrawRect(TRect(TPoint(i,i), TSize(50,50))); } } |
| 代码: |
LIBRARY fbscli.lib LIBRARY bitgdi.lib |
| 代码: |
#include ... private: CFbsBitmap* iOffScrnBmp; CFbsBitmapDevice* iOffScrnBmpDevice; CFbsBitGc* iOffScrnContext; |
| 代码: |
void CMyView::ConstructL(const TRect& aRect) { ... iOffScrnBmp = new (ELeave) CFbsBitmap; User::LeaveIfError(iOffScrnBmp->Create(Size(), EColor4K)); iOffScrnBmpDevice = CFbsBitmapDevice::NewL(iOffScrnBmp); User::LeaveIfError(iOffScrnBmpDevice->CreateContext(iOffScrnContext)); } |
| 代码: |
CMyView::~CMyView() { delete iOffScrnBmp; delete iOffScrnBmpDevice; delete iOffScrnContext; } void CMyView::Draw(const TRect& aRect) const { // 把我们的buffer清空 iOffScrnContext->Clear(Rect()); // 在buffer里画方块,而不是在屏幕上 for (int i=0; i<100; i+=2) { iOffScrnContext->DrawRect(TRect(TPoint(i,i), TSize(50,50))); } // 一次性把buffer画到屏幕上 CWindowGc& gc = SystemGc(); gc.BitBlt(TPoint(0,0), iOffScrnBmp); } |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10294527/viewspace-126559/ ,如需转载,请注明出处,否则将追究法律责任。