Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Руки - крюки
На страницу Пред.  1, 2

Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеВт, 07-Июн-2005 23:30 
Цитата

Цитата:
Кстати, сам MS в том же ослике никаких таких MAINMENU не использует. Там стоит объект класса ToolbarWindow32(для VCL это TToolBar) с кнопками и при нажатии на любую их них вызывается POPUPMENU функцией TrackPopupMenu(Ex).


Как оказалось, я ошибался.
При нажатии на кнопку тулбара-мэйнменю хитрож@#ые MS не вызывают POPUPMENU. Там вываливается обыкновенная панелька класса BaseBar и на ней расположен тулбар (или даже не один) с кнопками в качестве пунктов меню.
Естественно, имея такой расклад, мы можем обработать любое мышиное и клавиатурное сообщение. :)

Цитата:
Но как по координатам можно узнать пункт меню? Оно ведь не имеет HWnd.


Оказывается, API-шное меню все-таки имеет хэндл.
И найти его в принципе довольно просто - по классу #32768.
Другое дело - определить, что это именно наше меню, потому что иногда на экране бывает несколько меню (хотя дочерние легко опознать по наличию значения в Parent Window).



IE MainMenu.gif
 Описание:
 Размер:  13.37 KB
 Просмотрено:  1520 раз(а)

IE MainMenu.gif


В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Шурик
Я живу тут....


Возраст: 42
Знак зодиака: Овен
Зарегистрирован: 15.01.2003
Сообщения: 1951
Откуда: Киев
СообщениеЧт, 09-Июн-2005 1:16 
Цитата

Серьёзно ты покопался. Чем разбирался?
_________________
Ответ готов, готов ли твой вопрос?
В начало
Посмотреть профиль Отправить личное сообщение Отправить e-mail Посетить сайт автора
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеЧт, 09-Июн-2005 15:32 
Цитата

Цитата:
Чем разбирался?

Инфу об окнах и их классах получал вот этой прогой: Spy32 by Krichmar Kobi.
С осликом просто: заходим в пункт Избранное, выбираем какую-нить ссылку, говорим: переименовать, ну и дальше все понятно... ;)

Та же история с меню кнопки Пуск.

Ну а с АПИ-шным меню все случайно вышло: однажды одно из них просто заглючило и не убралось с экрана при потере фокуса...

8)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеПт, 12-Авг-2005 19:04    Заголовок сообщения: Re: Руки - крюки
Цитата

dogma писал(а):
Вопрос такой. Как обработать нажатие правой клавиши мышки на MainMenu. При это нужно из пункта в меню (на котором было произведено нажатие) взять значения некоторых свойств.
У меню есть подпункты.

WM_MENURBUTTONUP Notification
________________________________________________________

The WM_MENURBUTTONUP message is sent when the user releases the right mouse button while the cursor is on a menu item.

Syntax
Код:
WM_MENURBUTTONUP

    WPARAM wParam
    LPARAM lParam;

Parameters
    wParam
      Specifies the position of the item when the mouse was released.

    lParam
      Handle to the menu containing the item.

Return Value
    No return value.

Remarks
    The WM_MENURBUTTONUP message allows applications to provide a context-sensitive menu—also known as a shortcut menu—for the menu item specified in this message. To display a context-sensitive menu for a menu item, call the TrackPopupMenuEx function with TPM_RECURSE.
В начало
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Страница 2 из 2 На страницу Пред.  1, 2
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100