Freigeben über


Zeichnen im Clientbereich

Sie verwenden die Funktionen BeginPaint und EndPaint , um die Zeichnung im Clientbereich vorzubereiten und abzuschließen. BeginPaint gibt ein Handle an den Anzeigegerätekontext zurück, der zum Zeichnen im Clientbereich verwendet wird. EndPaint beendet die Malanforderung und gibt den Gerätekontext frei.

Im folgenden Beispiel schreibt die Fensterprozedur die Meldung "Hello, Windows!" in den Clientbereich. Um sicherzustellen, dass die Zeichenfolge beim ersten Erstellen des Fensters sichtbar ist, ruft die WinMain-FunktionUpdateWindow sofort nach dem Erstellen und Anzeigen des Fensters auf. Dies führt dazu, dass eine WM_PAINT Nachricht sofort an die Fensterprozedur gesendet wird.

LRESULT APIENTRY WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) 
{ 
    PAINTSTRUCT ps; 
    HDC hdc; 
 
    switch (message) 
    { 
        case WM_PAINT: 
            hdc = BeginPaint(hwnd, &ps); 
            TextOut(hdc, 0, 0, "Hello, Windows!", 15); 
            EndPaint(hwnd, &ps); 
            return 0L; 

        // Process other messages.   
    } 
} 
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 
{ 
    HWND hwnd; 
 
    hwnd = CreateWindowEx( 
        // parameters  
        ); 
 
    ShowWindow(hwnd, SW_SHOW); 
    UpdateWindow(hwnd); 
 
    return msg.wParam; 
}