Здравствуйте, ewsd, Вы писали:
E>Есть чужая прога на MFC. Исходников нет.
E>Необходимо в определенные моменты сделать невозможным нажатие определенной кнопки. Сообщения от мыши и клавы к этой кнопке мне побороть удалось с помощью EnableWindow(false). Но нажать кнопку все равно возможно через меню и через вызов горячей клавиши! Как быть, посоветуйте пожалуйста.
К меню в принципе можно добраться и задизейблить его пункты, но это вряд ли что-то даст, так как их могут разрешить опять, причем неизвестно когда. С кнопками — вообще-то, то же самое. Так что это не очень надежное решение.
Радикальное решение в следующем. Делается хук , устраиваем сабклассинг окну этого приложения и в сабклассирующей функции просто не передаем управление на прежний обработчик, если сообщение WM_COMMAND c нужным ID. После этого можно нажимать на кнопки и пункты меню сколько угодно

.
Как это сделать — смотри Рихтера. У него этот пример имеется 1:1, надо только обработчик свой сделать.