Windows API: скрыть кнопку, которая не является дочерним окном - PullRequest
0 голосов
/ 09 сентября 2010

У меня есть программа, где мне нужно отключить определенную кнопку на панели инструментов. «Сохранить» в элементе управления Adobe Reader.

Я знаю, что можно скрыть элемент управления, найдя его дескриптор окна.

Используя Spy ++, я нашел нужную панель инструментов. Имеет кнопки и текстовые поля. Хотя текстовые поля являются дочерними окнами панели инструментов, кнопки вовсе не являются окнами!

Как действовать в таком случае? Есть ли способ скрыть такие кнопки? Я попытался найти их, используя относительное положение на панели инструментов и отобразив что-то сверху, но его секции могут быть перемещены вручную пользователем.

Ответы [ 2 ]

1 голос
/ 09 сентября 2010

Предполагая, что у вас есть hwindow на панели инструментов, вы можете перебирать все кнопки панели инструментов (в зависимости от позиции, используйте TB_BUTTONCOUNT для количества кнопок), используйте сообщение TB_GETBUTTON , чтобы получите текущий идентификатор команды, затем TB_GETBUTTONTEXT (с идентификатором команды), чтобы получить заголовок кнопки. Затем используйте TB_ENABLEBUTTON для кнопки с заголовком, который вы ищете.

1 голос
/ 09 сентября 2010

Вы должны отправить TB_ENABLEBUTTON на панель инструментов

...