WINDOWINFO und GetWindowInfo Problem



  • Hi,

    ich wuerde gerne die Struktur WINDOWINFO und die Funktion GetWindowInfo nutzen, allerdings sagt mir der Compiler immer, dass die beiden nicht deklariert seien. Die windows.h habe richtig inkludiert (steht so im MSDN), Libs sind auch eingebunden.

    Woran kann sowas sonst noch liegen?

    Danke!
    falix



  • Definiere _WIN32_WINNT als 0x0501 vor dem Includen von <windows.h>.

    Greetz, Swordfish



  • Hmm, klappt auch nicht.

    Richtig eingebunden habe ich alles, da bin ich mir eigendlich sicher. Es klappt ja auch mit allen anderen Funktionen/Strukturen...

    Woran koennte sowas denn noch liegen?



  • äh Sorry, versuch mal:

    #define _WIN32_WINDOWS 0x0410
    #define WINVER 0x0400
    #include <windows.h>
    

    Greetz, Swordfish



  • Danke. Geht aber leider immer noch nicht.

    Langsam frustriert mich das ziemlich... 😞



  • Hat keiner 'ne Ahnung, was das sein könnte?



  • Also mir gehen schön langsam die Ahnungen aus...
    Es könnt' höchstens noch sein, dass du eine uralt-Version der Platform SDK hast.

    Greetz, Swordfish



  • Hmm, mein VC++ habe ich gestern erst auf den neuesten Stand gebracht. Klappt aber trotzdem nicht...

    Wie kann ich denn sonst noch rausfinden, ob ein Fenster gerade maximiert ist?

    Habe es mal mit GetWindowPlacement probiert. Wird zwar kompiliert, aber funktionieren tut's trotzdem nicht (Fenster ist angeblich immer maximiert).

    WINDOWPLACEMENT wp = { 0 };
    wp.length = sizeof(WINDOWPLACEMENT);
    GetWindowPlacement(hWnd, &wp);
    
    if(wp.showCmd & SW_MAXIMIZE)
    	MessageBox(0, "maximized", "", 0);
    

    Thx



  • Dein Fenster wird eine WM_SIZE Message kriegen, wenn es maximiert werden soll. Du könntest diese Message verarbeiten und immer wenn das Fenster maximiert wird eine statische bool Variabel auf true setzen. Über den lParam oder den wParam Wert der WM_SIZE Message kannst du rauskriegen ob das Fenster "nur" resizet wird oder ob es wirklich maximiert wird. Musst einfach mal in der MSDN schauen, welcher der beiden Parameter es ist.

    Die Lösung ist nicht schön, sollte aber funktionieren.


Anmelden zum Antworten