Window Positionieren



  • Soll eine toolbar werden:

    hwnd = CreateWindowEx(TBSTYLE_EX_MIXEDBUTTONS,
    TOOLBARCLASSNAME,
    (LPSTR) NULL,
    WS_CHILD | TBSTYLE_FLAT | TBSTYLE_TOOLTIPS | TBSTYLE_LIST,
    pos_u, pos_v, 0, 0,
    hWndMain,
    (HMENU) 1,
    hInst,
    NULL
    );



  • Wenn du für x und y nur

    pos_u, pos_v
    

    einsetzt statt fester Werte, nimmt Windows halt Standardwerte.

    Übrigens: Eine Toolbar läßt sich mit CreateWindowEx nur in der Kopfzeile des Fensters eingedockt erstellen. Wenn Du eine Toolbar frei positionierbar haben willst, muß Du ein ReBar Control oder für die Toolbar ein eigenes Fenster erstellen.



  • Ok das habe ich verstanden hier gehen also nur Konstanten.

    Wenn ich CreateWindowEx aufrufe, dann habe ich doch ein eigenes Fenster erstellt oder nicht?



  • Mit CreateWindowEx kannst Du (fast) jede Art von Fenster erstellen. Je nach Style und ClassName erkennt der FensterManager, wie er das Fenster behandeln muß. Bei TOOLBARCLASSNAME erstellt er nicht eine Toolbar in einem (Child)Fenster, sondern eben eine Toolbar, die im Fensterkopf des Parents eingedockt ist.



  • Wie muss ich vorgehen wenn ich ein Eigenes Fenster haben möchte.
    Kann mir da schnell jemand ein bischen code zeigen oder paar tipps zur vorgehensweise


  • Mod

    Elektronix schrieb:

    Wenn du für x und y nur

    pos_u, pos_v
    

    einsetzt statt fester Werte, nimmt Windows halt Standardwerte.

    Was bitte sind pos_u und pos_v. Wenn diese Werte etwas anderes sind als CW_USEDEFAULT, dann werden diese Werte genommen, so unsinnig diese auch sein mögen. Eine Korrektur findet nicht statt. Das hat zur Konsequenz, dass das Fenster evtl. nicht sichtbar ist.



  • also pos_u und pos_v sind ganz normale int variablen mit der Position.
    bei CreateWindowEx befindet sich das Fenster dann ganz oben, wo ich es eigentlich nicht haben wollte.



  • DarkX schrieb:

    Wie muss ich vorgehen wenn ich ein Eigenes Fenster haben möchte.
    Kann mir da schnell jemand ein bischen code zeigen oder paar tipps zur vorgehensweise

    Du erstellst ein stinknormales ChildWindow mit CreateWindowEx (am besten mit dem Style ToolWindow, damit ist die Kopfzeile etwas kleiner). Dann erstellst Du in diesem ToolWindow die Toolbar.
    Übrigens geht das alles auch mit CreateToolbarEx 😉 .

    pos_v und pos_u kannst Du als Variablen einsetzen, aber die Variablen müssen vorher einen Wert bekommen. Sonst passiert das, was Martin sagte.



  • Kann mir noch jemand kurz helfen:
    Mein windows Handle ist NULL;
    GetLastError liefert 87 -> The parameter is incorrect
    aber welcher?

    hwnd = CreateWindowEx(
        WS_EX_TOOLWINDOW,
        (LPSTR) NULL,
        (LPSTR) NULL,
        WS_CHILD | WS_VISIBLE,
        pos_u, pos_v, 0, 0,
        hWndMain,
        (HMENU) 0,
        hInst,
        NULL
        );
    


  • Hab den Fehler selbst gefunden. Die Fensterklasse darf nicht NULL sein.


Anmelden zum Antworten