Text mittig ausgeben



  • Hi Leute 🙂

    Ich habe folgende WndProc:

    LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    	PAINTSTRUCT ps;
    	HDC hdc;
    	TEXTMETRIC tm;
    	static int cxClient, cyClient, cxChar, cyChar;
    
        switch (message)                  /* handle the messages */
        {
    		case WM_CREATE:
    			hdc = GetDC(hwnd);
    			GetTextMetrics(hdc, &tm);
    			ReleaseDC(hwnd, hdc);
    			cxChar = tm.tmAveCharWidth;
    			cyChar = tm.tmHeight + tm.tmExternalLeading;
    			break;
    
    		case WM_SIZE:
    			cxClient = LOWORD(lParam);
    			cyClient = HIWORD(lParam);
    			break;
    
    		case WM_PAINT:
    			hdc = BeginPaint(hwnd, &ps);
    			TextOut(hdc, 0, (int)cyClient / 2, "Hallo WinWorld :)", 18);
    			EndPaint(hwnd, &ps);
    			break;
    
            case WM_DESTROY:
                PostQuitMessage (0);       /* send a WM_QUIT to the message queue */
                break;
            default:                      /* for messages that we don't deal with */
                return DefWindowProc (hwnd, message, wParam, lParam);
        }
    
        return 0;
    }
    

    Dieses Prog soll den text immer auf mittlerer Höhe ausgeben. Leider ist das beim ändern der Fenstergrösse nicht mehr der Fall. Der Text bleibt dann einfach da wo er war. Was habe ich falsch gemacht?

    Für Eure Antwort wäre ich euch sehr dankbar.

    gruss 🙂



  • Hmm..., hat sich erledigt 🙂 Ich habe einfach bei WinMain() dies bei der Fensterklasse vergessen:

    wincl.style = CS_DBLCLKS|CS_HREDRAW|CS_VREDRAW;
    

    Danke für Eure Mühe 🙂

    THX


Anmelden zum Antworten