Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Вниз

Инструментальная панель   Найти похожие ветки 

 
irq   (2003-06-27 11:26) [0]

Здравствуйте! Как нажать кнопку на инструментальной панели с помощью SendMessage? Известен дескриптор инструментальной панели, дескриптор владельца инструментальной панели и индекс кнопки. Спасибо


 
Ян   (2003-06-30 09:56) [1]

var Point:Tpoint;
( HTB,WM_LBUTTONDOWN,MK_LBUTTON,longint(@Point) var Point:Tpoint;
Rect:Trect;
begin
sendmessage(HTB,WM_LBUTTONDOWN,MK_LBUTTON,longint(@Point));
sendmessage(HTB,WM_LBUTTONup,0,longint(@Point));
//Point-координата в пределах нужной кнопки относительно тулбара
координаты кнопки можно вычислить через
sendmessage(HTB,TB_GETITEMRECT,Ibut,longint(@Rect));
HTB-хэндл тулбара, Ibut-индекс кнопки, но работает почему-то
только для своего окна. Для других Rect вычисляться упорно
не хочет.


 
irq   (2003-06-30 10:50) [2]

Спасибо за ответ. Проблема с ToolBar"ом на сегодняшний момент решена. Таким же способом, что Вы предложили. Думаю, что структура rect заполняется ерундой, по той причине, что данные запрашиваются из адресного пространства другого процесса. Я передаю координаты, напрямую указывая их (напрммер, (10, 10) - это 0 кнопка). Некрасиво, но что поделать.

Сейчас передо мной стоит еще одна непростая задача - выполнить
действия, связанные с пунктом всплывающего меню (TPopUp в Delphi) в чужой программе. Известные данные - ShortKey этого пункта и его индекс. Как решить задачу? Спасибо.


 
Ян   (2003-06-30 13:25) [3]

нужно получить идентификатор нужного пункта меню
//------------- N-номер пункта ---
MnuID:=GetMenuItemID(MnuHandle,N);
MnuHandle - хэндл того подменю в котором этот пункт
//-------------
sendmessage(WinHandle,WM_COMMAND,makewparam(MnuID,0),0);

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



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2003.09.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.011 c
3-1320
Alex_74
2003-08-06 14:16
2003.09.01
Установка фильтра по полю даты в ApolloTable


9-1271
Zombik666
2003-02-28 10:19
2003.09.01
2 exeшника


3-1295
Olivka
2003-08-08 11:59
2003.09.01
Какой-то был компонент , позволяющий делать запросы к датасетам?


6-1542
delphimun
2003-06-25 16:35
2003.09.01
Как из своей проги создать собственную учетную запись в Outlook-е


3-1285
Rel_
2003-08-11 16:02
2003.09.01
Невероятный запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский