예제 #1
0
파일: MfcGraphWnd.cpp 프로젝트: rhcad/vgwin
void MfcViewAdapter::onDraw(CDC* pDC)
{
    _coreView->setScreenDpi(pDC->GetDeviceCaps(LOGPIXELSY));
    _coreView->setBkColor(this, pDC->GetBkColor() | 0xFF000000);

    if (_canvas.beginPaint(_wnd->GetSafeHwnd(), pDC->GetSafeHdc())) {
        if (!_canvas.drawCachedBitmap()) {
            _canvas.clearWindow();
            _coreView->drawAll(this, &_canvas);
            // TODO: Fix _canvas.saveCachedBitmap();
        }
        _coreView->dynDraw(this, &_canvas);
        _canvas.endPaint();
    }
}
예제 #2
0
파일: app.cpp 프로젝트: donal-tong/TouchVG
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;
}