FensterMenü erweitern



  • WM_NCPAINT, WM_NC* entsprechend verarbeiten.

    Wenn das tatsächlich unbedingt sein muss in der Titelzeile zu hantieren:
    Ich würde da lieber gleich nen Fenster ohne Titelzeile nehmen und in die Clientarea selbst eine Fake-Titelzeile zeichnen.
    Dann erspart man sich Probleme mit Windows-Themes und evtl. zukünftigen Änderungen an Windows. Aero mag Rumzeichnen in der Titelleiste glaube ich auch nicht besonders gerne...



  • Der folgende Code verpasst dem Minimieren-Eintrag des Menüs ein (vordefiniertes) Bitmap. An dieser Stelle kannst du natürlich dein eigenes Bitmap setzen und vorher auch noch eigene Menueinträge einfügen.
    Meintest du sowas in der Art?

    HMENU menu = GetSystemMenu(hwnd, false);
    if(menu)
    {
    	MENUITEMINFO info = {0};
    	info.cbSize = sizeof(MENUITEMINFO);
    	info.fMask = MIIM_BITMAP;
    	info.hbmpItem = HBMMENU_MBAR_CLOSE;
    	SetMenuItemInfo(menu, SC_MINIMIZE, MF_BYCOMMAND, &info);
    }
    

    Edit: Ein vorheriges GetMenuItemInfo ist natürlich nicht nötig...



  • Ja...das kommt dem schon ganz nah, danke soweit...

    Wenn ich jetzt noch mehr Buttons oben in die Leiste setzen möchte, reicht dass dann, wenn ich mehrere
    MENUITEMINFO info = {0};
    -Objekte erstelle ?



  • Hab deinen Code mal ausprobiert, bei mir tut sich nichts...

    MENUITEMINFO info = {0};
    info.cbSize = sizeof(MENUITEMINFO);
    info.fMask = MIIM_BITMAP;
    info.hbmpItem = (HBITMAP)LoadImage(hInst, MAKEINTRESOURCE(IDB_BITMAP1), IMAGE_BITMAP, 0, 0, LR_DEFAULTCOLOR | LR_DEFAULTSIZE);
    // Beides mal probiert -> info.hbmpItem = HBMMENU_MBAR_CLOSE;
    SetMenuItemInfo(menu, SC_MINIMIZE, MF_BYCOMMAND, &info);
    

    SetMenuItemInfo gibt zwar TRUE zurück, aber ansonsten seh ich nichts...wo liegt mein Fehler ?

    MfG


  • Mod

    Und hbmpItem ist !=NULL?



  • Also was denn jetzt? Willst du das Systemmenü von einem Fenster um Menüeinträge erweitern, dann rede auch von Menüeinträgen oder willst du zusätzliche Schaltflächen in der Titelleiste des Fensters haben?



  • Ja, hbmpItem ist !=NULL....

    @_Luckie:
    ich möchte meinem Fenster zusätzliche Schaltflächen hinzufügen wie Minimieren, Maximieren und Schließen...



  • Aha, und warum sagst du dann nichts wenn man dir Code gibt, um das Systemmenü des Fensters zu erweitern? Das willst du doch gar nicht. 🙄



  • GastUser schrieb:

    ich möchte meinem Fenster zusätzliche Schaltflächen hinzufügen wie Minimieren, Maximieren und Schließen...

    Warum zusätzlich? Die sind ohnehin (WS_OVERLAPPEDWINDOW) vorhanden.

    Ich versteh' dich nicht.



  • Mensch wie soll ich euch das erklären...

    Außer den Button Minimieren, Maximieren und Schließen, möchte ich noch weitere dort oben haben, welche ich "nach Belieben" gestalten kann (mit einer Bitmap zum Beispiel).

    Tut mir leid das ich nichts gesagt habe, ich wusste nicht das der Code nicht das macht was ich wollte 😉


Anmelden zum Antworten