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

Вниз

Как вставить свой пункт в чужое PopuMenu?   Найти похожие ветки 

 
Димок   (2002-05-15 18:03) [0]

Уважаемые мастера, подскажите, пожалуйста, если это возможно, как вставить свой пункт в чужое PopupMenu. Например, мне надо вставить свой пункт в меню, выскакивающее при нажатие на правую кнопку в чужом TEdit (в совершенно постороннем приложении), там где другие пункты - Вырезать, Копировать, Вставить и т.п.
Спасибо!


 
MBo   (2002-05-15 18:13) [1]

GetMenu
InsertMenuItem
и т.д.


 
Димок   (2002-05-15 21:03) [2]

Спасибо, GetMenu отлично работает, но вот как использовать InsertMenuItem не могу понять. Можно небольшой примерчик, пожалуйста?
(Я пишу: insertmenu(hm,0,mf_byposition+mf_string,0,"aaaa");)


 
MBo   (2002-05-16 07:49) [3]

пример откуда-то. SDK говорит, что InsertMenu устарело.

procedure TForm1.Button1Click(Sender: TObject);
var
SystemMenu : HMenu;
MyMenuItemInfo : TMenuItemInfo;
tmpInt : Integer;
begin
{ get the TForm"s system menu handle }
SystemMenu := GetSystemMenu(handle, FALSE);

{ initialize our TMenuItemInfo record }
FillChar(MyMenuItemInfo,SizeOf(TMenuItemInfo),#0);
MyMenuItemInfo.cbSize := SizeOf(TMenuItemInfo);
MyMenuItemInfo.fMask := MIIM_TYPE or
MIIM_ID;

{ add a seperator between the end of the menu
items and our new menu item }
MyMenuItemInfo.fType := MFT_SEPARATOR;
tmpInt := GetMenuItemCount(SystemMenu);
InsertMenuItem(SystemMenu,
tmpInt,
TRUE,
MyMenuItemInfo);

{ add our new menu item to the end of the list }
MyMenuItemInfo.fType := MFT_STRING;
MyMenuItemInfo.dwTypeData := "M&y Menu Item";
MyMenuItemInfo.cch := StrLen(PChar(MyMenuItemInfo.dwTypeData));
tmpInt := GetMenuItemCount(SystemMenu);
InsertMenuItem(SystemMenu,
tmpInt,
TRUE,
MyMenuItemInfo);
end;


 
Димок   (2002-05-16 20:27) [4]

Спасибо огромное!! Все отлично работает, осталось мне только научиться отлавливать клики на этом item"е. Предполягаю, что для этого нужно связать с ним как-то компонент типа TMenuItem.


 
MBo   (2002-05-16 20:36) [5]

Насколько я понимаю, надо ловить WM_MENUSELECT WM_COMMAND и т.п.



 
Димок   (2002-05-16 21:03) [6]

К сожалению,я не очень знаю, как ловить WINAPI сообщения. Наверно, надо написать что-то вроде:
procedure MyItemClick();message WM_MENUSELECT;
А потом в процедуре проверять, к моему item"у это относится или нет...


 
MBo   (2002-05-16 21:34) [7]

ты же писал
>>в чужое PopupMenu
там procedure MyItemClick(); не пройдет


 
Димок   (2002-05-16 21:49) [8]

А как еще можно отловить WM_MENUSELECT?



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

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

Наверх





Память: 0.46 MB
Время: 0.006 c
3-88380
fliz
2002-04-29 11:21
2002.05.27
ADO + DBGrid. Добавление-отмена д-я записи приводит к сообщению


1-88456
Ross
2002-05-17 16:23
2002.05.27
Что мне нужно добавить?


3-88345
cranium
2002-04-30 16:25
2002.05.27
Как запретить UPDATE для отдельных столбцов в таблице?


3-88388
Oleg_er
2002-05-04 11:05
2002.05.27
Создание таблицы


3-88336
KIR
2002-04-29 12:21
2002.05.27
Аналог OnDrawCell в DBGrid





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