Форум: "WinAPI";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Внизотлов сообщений от контекстного меню Найти похожие ветки
← →
WELLiON © (2004-04-08 22:42) [0]Такая проблема: никак не могу отловить, какой же пункт меню у меня выбран. Какое сообщение я должен отлавливать, чтобы узнать идентификатор выбранного пункта меню. (Если я правильно понял, то идентификатор - это то число, которое задается в процедуре insertmenuitem(menu, 2, false, item);)
Мой код:
case msg of
wm_COMMAND:
begin
case lParam of
1: messagebox(MainWnd, "123", "123", MB_OK);
2: messagebox(MainWnd, "456", "456", MB_OK);
end;
RESULT:=0;
end;
Я просто не знаю, какой именно кусок кода надо приводить. Заранее прошу прощения, если привел не то. Скажите какой нужен - я процитирую.
← →
Diamond Cat © (2004-04-08 22:54) [1]wparam а не lparam
← →
WELLiON © (2004-04-09 13:45) [2]Ну ладно:
item.dwTypeData:="?????????";
insertmenuitem(menu, 2, false, item);
//bla-bla-bla
case msg of
wm_COMMAND:
begin
case wParam of
1: messagebox(MainWnd, "? ????????? ...", "????? ????:", MB_OK);
2: messagebox(MainWnd, "?????????", "????? ????:", MB_OK);
3: messagebox(MainWnd, "???????? ??????", "????? ????:", MB_OK);
4: messagebox(MainWnd, "?????", "????? ????:", MB_OK);
end;
messagebox(MainWnd, PChar(inttostr(wParam)), "????? ????:", MB_OK);
RESULT:=0;
end;
действие происходит в оконной процедуре. Даже последний из мессаджбоксов не появляется. Подскажите плиз.Может я что-то ни то отлавливаю?
Создание меню:
TrackPopupMenuEx(menu, TPM_rightalign+tpm_bottomalign+tpm_returncmd, p.x, p.y,Mainwnd, nil);
← →
clickmaker © (2004-04-09 18:54) [3]item.cbSize := sizeof(MENUITEMINFO);
item.fMask := MIIM_DATA or MIIM_ID;
item.wID := ID;
← →
WELLiON © (2004-04-10 11:04) [4]Вот мой код:
// ...
item.cbSize:=sizeof(menuiteminfo);
item.fType:=mft_string;
item.fMask:=MIIM_STRING or MIIM_DATA or MIIM_ID;
menu:=createpopupmenu;
item.dwTypeData:="О программе ...";
item.wID:=1;
insertmenuitem(menu, 1, false, item);
// и т.д.
setmenu(MainWnd, menu);
// ...
В остальном все также как наверху.
Прочитал описание TrackPopupMenuEx. Не объясните, что значит:
"hwnd (предпоследний параметр в моем вызове - прим.)
Дескриптор окна, имеющего контекстное меню. Окно получает все сообщения от меню, но не получает сообщение WM_COMMAND до возвращения функции."
Если я ловлю не то сообщение, то что мне надо ловить?
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.03 c