Maximieren ohne Caption

Es gibt da WM_INITMENU und WM_INITMENUPOPUP, die aufgerufen werden, wenn ein Menü geöffnet wird. Da könntest du das HMENU prüfen, ob es das Systemmenü ist (sage ich jetzt mal so).

Auf jeden Fall hast du da einiges an Arbeit vor dir :)
 
Wahaha ist das Genial:

Das ist mein code:
void CUpdateCheckerDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
CDialog::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
if(bSysMenu)
{
if(IsZoomed())
{
pPopupMenu->EnableMenuItem( SC_RESTORE, MF_BYCOMMAND|MF_ENABLED );
pPopupMenu->EnableMenuItem( SC_MOVE, MF_BYCOMMAND|MF_DISABLED|MF_GRAYED );
pPopupMenu->EnableMenuItem( SC_SIZE, MF_BYCOMMAND|MF_DISABLED|MF_GRAYED );
pPopupMenu->EnableMenuItem( SC_MINIMIZE, MF_BYCOMMAND|MF_ENABLED );
pPopupMenu->EnableMenuItem( SC_MAXIMIZE, MF_BYCOMMAND|MF_DISABLED|MF_GRAYED );
}
else
{
pPopupMenu->EnableMenuItem( SC_RESTORE, MF_BYCOMMAND|MF_DISABLED|MF_GRAYED );
pPopupMenu->EnableMenuItem( SC_MOVE, MF_BYCOMMAND|MF_ENABLED );
pPopupMenu->EnableMenuItem( SC_SIZE, MF_BYCOMMAND|MF_ENABLED );
pPopupMenu->EnableMenuItem( SC_MINIMIZE, MF_BYCOMMAND|MF_ENABLED );
pPopupMenu->EnableMenuItem( SC_MAXIMIZE, MF_BYCOMMAND|MF_ENABLED );
}
}
}
Klappt alles bestens - das sagt einem sogar schon obs das Systemmenu ist.
Danke nochmal.

Ähm :-( vielleich noch eine Kleinigkeit - würde sogar zum Thema passen - ich hab eine Steuerelement abgeleitet von Typ CWnd und wenn der Benutzer da einen Rechtsklick drauf macht, lasse ich ebenfalls das Systemmenu anzeigen - als "Owner" geb ich dem das Parent des Steuerelements - also den Dialog - aber der reagiert nicht auf dieses - hab jetzt zwar aber noch nicht alle meine Ideen ausprobiert aber vielleich könnte mir jemand spontan einen Tip geben ^-^°

M.f.G. Erik
 
Zuletzt bearbeitet:
Zurück