Code: Select all
MN_GETHMENU = 0x01E1
def set_menu_background_color(event):
hwnd = ctypes.windll.user32.FindWindowW("#32768", None)
hmenu = ctypes.windll.user32.SendMessageW(hwnd, MN_GETHMENU, 0, 0)
# Set the menu background color using SetMenuInfo()
menu.bind("", set_menu_background_color)
Stellt tk tatsächlich das HMENU eines Menüs zur Verfügung? Wenn ja, wie kann ich es bekommen?
Bearbeiten: Ich weiß, dass Sie GetMenu verwenden können, aber das funktioniert nur, wenn das Menü als Menüleiste eines bestimmten Fensters festgelegt ist. Ich glaube nicht, dass ich diese Funktion verwenden kann, da laut der tk-Menüdokumentation ein Klon des Menüs erstellt wird, wenn ein Menü als Menüleiste für ein Fenster der obersten Ebene festgelegt wird. Wenn ich also vorübergehend das HMENU des Menüs, dessen HMENU ich erhalten möchte, als Menüleiste festlege, sein HMENU mit GetMenu erhalte und dann das Menü der ursprünglichen Menüleiste wiederherstelle/entferne, wird nur das HMENU für das geklonte Menü zurückgegeben.
Während GetMenu für das Menü der Menüleiste funktioniert, benötige ich eine Möglichkeit, irgendwie an das HMENU eines Menüs zu gelangen, das ich beispielsweise manuell posten oder für ein Menubutton-Widget verwenden werde, ohne es anzuzeigen Suchen Sie zuerst das Popup-Fenster und senden Sie ihm dann eine Nachricht, um das HMENU des zugehörigen Menüs abzurufen.
Mobile version