Главная страница
    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
1-88461
Ironwit
2002-05-17 16:51
2002.05.27
как получить размер символов в пискелях


1-88448
rvs
2002-05-15 12:48
2002.05.27
О параметрах. Вопрос чайника


4-88684
ввв
2002-03-27 22:36
2002.05.27
поток


1-88446
Димок
2002-05-17 14:28
2002.05.27
Как убрать свое приложение с панели задач?


1-88517
BAHO
2002-05-15 00:07
2002.05.27
Отрезок времени...!





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