Fenstergröße in einer Klasse ermitteln



  • Hi Leutz.
    Ich will in einer Methode die Größe eines übergebenden Fensters ermitteln, um dann ein Fenster je nach Position des anderen Fensters wo zu erstellen. Ich habe es schon mit GetClientRect () versucht aber entweder stürzt das Programm ab, oder er zeigt das Fenster nicht an. Ich habe das ganze auch schon zwischen BeginPaint () und EndPaint() gepackt, hatte aber den gleichen Effekt.

    DIV Ominion



  • geht width, height, size nicht?

    int breite = Pointer_to_the_Form->Width;
    


  • Ist schon manchmal lustig, wie sich manche Leute andere verwirren 😃 .

    Ominion schrieb:

    Ich habe es schon mit GetClientRect () versucht aber entweder stürzt das Programm ab

    Sollte eigentlich funktionieren, zeig mal Dein Code, denke mal Du hast da einen Fehler gemacht.

    PS: Es gibt i.d.R. einen Unterschied zwischen dem Fenstergröße ( ➡ GetWindowRect) und der Größe des Client-Bereichs ( ➡ GetClientRect).



  • RECT rect;
    GetClientRect(m_Handle, &rect);

    oder

    RECT rect;
    GetWindowRect(m_Handle, &rect);



  • ich habe es genauso gemacht wie Mr Evil es geschrieben hat. Und dann eben noch rect.right usw. genommen und berechnet. So sieht das bei mir aus:

    class KLASSE
    {
        int GetWidth (HWND hWnd)
        {
            RECT rect;
            GetClientRect (hWnd, &rect);
    
            return rect.right - rect.left;
        }
    };
    

    Mfg Ominion


Anmelden zum Antworten