Главная страница
    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
14-88596
Саша
2002-04-18 10:03
2002.05.27
База данных


3-88365
perov
2002-05-02 12:06
2002.05.27
модификация свойств объектов Fast Report


6-88570
EveryonE
2002-03-14 20:43
2002.05.27
Сокеты


1-88452
Ron
2002-05-17 11:32
2002.05.27
TStringGrid


14-88625
Song
2002-04-15 11:16
2002.05.27
Goto





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