Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

добавление submenu в item popupmenu [D7, WinXP]


tradakad ©   (2004-12-28 16:35:00) 

Приветствую!
имеется меню.
  hPopup:=CreatePopupMenu;
добавляю в него итем
 AppendMenu(hPopup,MF_STRING,9,'test');
теперь создаю второе popupmenu и добавляю в него итем.
 hPopup_test:=CreatePopupMenu;
 AppendMenu(hPopup_test,MF_STRING,9,'test_test');

для того чтобы по нажатию на test открывалось второе меню делаю так.

procedure Popup_Vis;
begin
SetForegroundWindow(Handle);
GetCursorPos(cur_pos);
TrackPopupMenu(hPopup_vis,0,cur_pos.X,cur_pos.y,5,Handle,nil);
PostMessage(Handle,WM_NULL,0,0);
end;

function WindowProc(hwnd, msg, wparam, lparam:longint):longint;stdcall;
begin
 Result:=DefWindowProc(hwnd,msg,wparam,lparam);
 case Msg of
   WM_COMMAND :
   begin
   if lparam=0 then
   begin
     case wparam of
        9: Popup_Vis;
     end;
   end;
 end;
end;
в приципе все работает за одним но. вернее  за тремя..
1) хотелось бы чтобы пункт test после надписи (справа) имел такую стрелочку что означает что в нем есть подменю. как это сделать?
2) хотелось бы чтобы второе popupmenu открывалось по наведению курсора на надпись test а не по клику (но здесь думаю стоит повнимательнее почитать о WM_COMMAND)...
3) самое важное... по клику на test - (когда появляется второе меню) основное меню пропадает а я хочу чтобы оно оставалось..
Спасибо!


tradakad   (2004-12-29 09:38:00) [1]

AppendMenu(hPopup_test,mf_Popup,hPopup,'test_test');

- вот за это спасибо! ) это у меня то и не получалось ))


grom   (2004-12-28 18:37:00) [2]

//hPopupx:=createmenu; не надо


grom   (2004-12-28 18:11:00) [3]

winapi
hPopupx:=createmenu;
hPopup:=createmenu;
hPopup_test:=CreatePopupMenu;
insertmenu(hPopup,word(-1),mf_ByPosition,Wm_user+22,'testxx');
insertmenu(hPopup,word(-1),mf_ByPosition,Wm_user+21,'test');
AppendMenu(hPopup_test,mf_Popup,hPopup,'test_test');


tradakad   (2004-12-28 17:18:00) [4]

grom ты извини конечно.. но где я итем то возьму? мне что menus подключать? это же winapi и максимумум что я имею - это хендл менюхи (как я понимаю)...


grom   (2004-12-28 16:50:00) [5]

item.Add(submenu);


Наверх

Титульная страница Поиск, карта сайта Написать письмо