void ondraw(HWND hwnd) { DWORD tick = GetTickCount(); PAINTSTRUCT ps; HDC hdc = BeginPaint(hwnd, &ps); // 获取重绘消息的句柄数据 SetBkColor(hdc, GetSysColor(COLOR_WINDOW)); // 设置背景色以便传到画布 if (_canvas.beginPaint(hwnd, hdc)) { // 开始在画布上绘制 if (!_canvas.drawCachedBitmap()) { // 显示上次保存的内容 _canvas.clearWindow(); // 使用背景色清除显示 TestCanvas::test(&_canvas, _tests); // 绘制测试图形 if ((_tests & 0x400) == 0) // not testDynCurves _canvas.saveCachedBitmap(); // 缓存显示的内容 } dyndraw(&_canvas); // 绘制动态图形 _canvas.endPaint(); // 结束绘制 } EndPaint(hwnd, &ps); tick = GetTickCount() - tick; }