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

Вниз

Как добавить пункт меню в работающее приложение   Найти похожие ветки 

 
foks   (2002-04-28 15:33) [0]

Уважемые Мастера помогите разобраться с таким вопросом

Как мне добавить новый пункт меню в открытое приложение Delphi и обработать событие OnClick на нем я делаю так:
appendmenu(getsubmenu(getsubmenu(getmenu(findwindow("TForm1","qwerty")),0),2),MF_STRING,SC_MyMenuItem,"Новый пункт меню");
но данный код у меня работает только для текущего приложения а для другого не работает, т.е. пункт он добавляет, но message не обрабатывает.
Помогите пожалуйста.


 
Song   (2002-04-28 16:11) [1]

Нажатие на пункт меню можно отловить через WM_SYSCOMMAND


 
foks   (2002-04-29 07:33) [2]

А можно, простенький пример, у меня:
const SC_MyMenuItem = WM_USER+1;

procedure TForm1.WMSysCommand(var Msg:TWMSysCommand);
begin
if Msg.CmType=SC_MyMenuItem then
OnMeMenu else
inherited;
end;

, но данный код работает только с текущем приложением, в чем моя ошибка.


 
Song   (2002-04-29 09:13) [3]

Не понял... А Вам нужно обрабатывать чужое приложение? Тогда надо хук ставить.


 
foks   (2002-04-29 10:47) [4]

Попробую объяснить. Оба приложения мои. В первом (то в которое мне нужно добавить пункт меню) при загрузке запускается процедура из подключаемой библиотеки, и данная процедура, как раз и должна добавить пункт. Затем библиотека получает сообщение о нажатии на добавленный пункт и обработывает его.

А как можно этом случае поставить хук.


 
Anatoly Podgoretsky   (2002-04-29 10:56) [5]

foks © (29.04.02 10:47)
Что то здесь никак не просматривается второе приложение


 
foks   (2002-04-29 13:16) [6]

Извиняюсь, я оказался не совсем прав. Просто я сам эксперементировал с двумя приложениями, а в последнем изречении указал на DLL. Во время проверки я запускал приложение с существующим МЕНЮ. А из второго пытался добавить к нему пункт, но пункт-то добавляется, но OnClick не работает, вот я и начал эту тему с данного вопроса.



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

Форум: "Основная";
Текущий архив: 2002.05.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.004 c
4-39918
chernoruk
2002-03-09 05:58
2002.05.13
Убить диалоговое окно!


7-39867
vitnt2000
2002-02-15 06:14
2002.05.13
Управление окном IExplorer


1-39706
zje
2002-04-29 17:00
2002.05.13
RichEdit


4-39892
SkyR
2002-03-11 01:37
2002.05.13
Такой вопрос у меня...


4-39882
chernoruk
2002-02-24 22:14
2002.05.13
Проблемы с EnumWindows





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский