Код: Выделить всё
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)
Действительно ли tk отображает HMENU меню? Если да, то как я могу его получить?
Изменить: я знаю, что вы можете использовать GetMenu, но это работает только в том случае, если меню установлено как строка меню определенного окна. Я не думаю, что смогу использовать эту функцию, потому что, согласно документации tk Menu, когда меню устанавливается в качестве строки меню для окна верхнего уровня, создается клон меню. Поэтому, временно установив меню, я хочу получить его HMENU в виде строки меню, получить его HMENU с помощью GetMenu, а затем восстановить исходное меню строки меню/удалить его, это вернет только HMENU для клонированного меню.
Хотя GetMenu работает для меню строки меню, мне нужен способ каким-то образом получить HMENU меню, которое я, например, опубликую вручную или использую для виджета Menubutton, без сначала отобразив его, найдите его всплывающее окно, а затем отправьте ему сообщение, чтобы получить HMENU связанного с ним меню.
Подробнее здесь: https://stackoverflow.com/questions/798 ... on-windows
Мобильная версия