![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Popup меню из ресурса [D3, D6, Win95/98, Win2k]
rhf © (2002-11-24 19:14:00)Как описать в ресурсе попап меню, чтобы потом загрузить его через LoadMenu и показывать с помощью TrackPopupMenu?
Есть вариант описать главное меню, а попап как одно из его выпадающих.
Ну и потом
MenuHandle:=LoadMenu(hInstance,"MyMenu");
MenuHandle:=GetSubMenu(MenuHandle,0);
Можно ли как то проще?
Evgeny (2002-11-26 05:36:00) [1]можно так:
const
ID_POPMENU = 1000;
ID_NEW = 1010;
ID_OPTION = 1020;
ID_SCORES = 1030;
ID_ABOUT = 1040;
ID_EXIT = 1050;
ID_POPMENU MENU
BEGIN
POPUP ""
BEGIN
MENUITEM "&New\tF2", ID_NEW
MENUITEM SEPARATOR
MENUITEM "Option\tF9", ID_OPTION
MENUITEM "&Hi score...\tF4", ID_SCORES
MENUITEM "&About..\tF1", ID_ABOUT
MENUITEM SEPARATOR
MENUITEM "&Exit", ID_EXIT
END
END
...
var
hMn : HMENU;
PopMenu : HMENU;
wm_create:
hMn := LoadMenu(hInstance, MAKEINTRESOURCE(ID_POPMENU));
WM_RBUTTONUP :
begin
Pt.x := LOWORD(lParam);
Pt.y := HIWORD(lParam);
PopMenu := GetSubMenu(hMn, 0);
ClientToScreen(Wnd, Pt);
TrackPopupMenu(PopMenu, TPM_LEFTALIGN or TPM_RIGHTBUTTON,
Pt.x, Pt.y, 0, Wnd, NIL);
end;
asmith (2002-11-24 20:12:00) [2]Можно проще:
var
menu : HMENU;
const
IDM_START = 20;
IDM_EXIT = 21;
IDM_ABOUT = 22;
...
menu := CreatePopupMenu();
AppendMenu(menu, MF_STRING, IDM_START, "Start");
AppendMenu(menu, MF_SEPARATOR, 0, nil);
AppendMenu(menu, MF_STRING, IDM_EXIT, "Exit");
AppendMenu(menu, MF_STRING, IDM_ABOUT, "About");