3

通常、線を描くにはWM_PAINTで描きます

LRESULT CALLBACK Display::DisplayWindowProc(HWND hWnd,UINT msg,WPARAM wParamm,LPARAM lParam)
{
    HDC hdc;
    PAINTSTRUCT ps;

    switch(msg)
    {
    case WM_PAINT:
        hdc = BeginPaint(hWnd,&ps);
        MoveToEx(hdc,0,0,0);
        LineTo(hdc,100,100);
        EndPaint(hWnd,&ps);
        return 0;
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    }
    return DefWindowProc( hWnd, msg, wParamm, lParam);
}

しかし、いつでも線を引きたい、簡単な例:

int WINAPI WinMain
(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
PSTR cmdLine,
int showCmd
)
{
    //Do Other Things
    Display dislpay;
    display.DrawLine();
    //Do Other Things
}

私のプログラムはオブジェクト指向で、Display クラスで物事を表示します。Display クラスの DrawLine() のような関数で線を引くことができるかどうか疑問に思っていました。

4

1 に答える 1

2

オフスクリーン DC を作成し、適切なサイズのビットマップを選択し、それを使用していつでも描画できます。次にWM_PAINT、オフスクリーン DC から Windows DC にブリットします。

于 2015-06-30T06:50:41.097 に答える