Как определить хэндл всплывающего меню? - VB

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста найти хэндл всплывшего не моего меню. Надо бы деактивировать там пару команд. Спасибо.

Решение задачи: «Как определить хэндл всплывающего меню?»

textual
Листинг программы
  1. HWND hWND=FindWindowA("class","title"); // определяем хендл главного окна
  2.   HWND hControl=FindWindowA("button","ok"); // определим хендл контрола, по которому при клике правой кнопкой всплывает нужное меню
  3.   int X=41 Y=10; // координаты мыши для щелчка
  4.   PostMessage(hControl, WM_RBUTTONDOWN, MK_RBUTTON, X * 65536 + Y); // нажмем програмно на нужном элементе
  5.   PostMessage(hControl, WM_RBUTTONUP, MK_RBUTTON, X * 65536 + Y); // отпустим кнопку
  6.   Sleep(100); //
  7.  
  8.   HWND hpopup=FindWindowA("#32768",""); // определим хендл владельца всплывшего меню
  9.   int hmenu=SendMessageA(hpopup,MN_GETHMENU,0,0); // определим хендл самого меню
  10.  
  11.   int i = 1; // номер элемента, который нужно выбрать
  12.   int id=GetMenuItemID(hmenu,i); // получим идентификатор элемента
  13.   SendMessageA(hMT,WM_COMMAND,id,0); // выберем его
  14.   SendMessageA(hpopup,WM_CLOSE,0,0); // закроем меню

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы