2009-04-12 15 views
1

Gibt es eine Möglichkeit zu bestimmen, ob ein Menü in der Win32 API gelöscht wird? Etwas, das wie folgt verwendet werden könnte:Ermitteln, ob ein Menü heruntergefallen ist

HMENU hMenu = GetMenu (hWnd);

HMENU hSubMenu = GetSubMenu (hMenu);

// Ist hSubMenu heruntergefallen?

Antwort

2

Ich bin mir nicht sicher über eine Möglichkeit, speziell auf HMENUs zu arbeiten, um zu sehen, ob das Menü angezeigt wird (und ein kurzer Scan der Plattform SDK-Dokumente nichts spezifisches ergab), aber Sie könnten möglicherweise verwenden die GetMenuItemInfo Funktion, um eine MENUITEMINFO Struktur zu erhalten, die sich auf den Menüpunkt bezieht, der das Dropdown besitzt. Wenn das fState Mitglied MFS_HILITE festgelegt hat, sollte das anzeigen, dass das Element ausgewählt ist und das Untermenü höchstwahrscheinlich geöffnet ist. Korrektheit ist nicht meinerseits garantiert, aber es lohnt sich, damit zu experimentieren.

würde Eine weitere mögliche Option FindWindow mit der Klasse „# 32768“, die hWnd von was auch immer Menüs geöffnet sein kann zu finden, und das Senden der MN_GETHMENU Nachricht an Unabhängig davon, welche Fenster finden Sie die HMENU und vergleichen Sie es mit dem erwarteten Wert abzurufen von GetSubMenu.

Verwandte Themen