![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
WM_MENUSELECT [D6, WinXP]
webpauk © (2004-07-14 20:38:00)Устанавливаю меню окна:
var
MainMenu, PopGame, PopDeck: HMENU;
begin
PopGame:=CreatePopupMenu;
AppendMenu(PopGame, MF_STRING, 2, PChar('Новая'));
AppendMenu(PopGame, MF_STRING, 3, PChar(Загрузить));
AppendMenu(PopGame, MF_STRING, 4, PChar(Сохранить));
AppendMenu(PopGame, MF_STRING, 5, PChar('Выход'));
PopDeck:=CreatePopupMenu;
AppendMenu(PopDeck, MF_STRING, 7, PChar('Стандарт'));
AppendMenu(PopDeck, MF_STRING, 8, PChar('Загрузить'));
MainMenu:=CreateMenu();
AppendMenu(MainMenu, MF_POPUP, PopGame, PChar('Игра'));
AppendMenu(MainMenu, MF_POPUP, PopDeck, PChar('Доска'));
AppendMenu(MainMenu, MF_POPUP, 9, PChar('История'));
SetMenu(MainWnd, MainMenu);
После этого ловлю сообщение:
function WindowProc(wnd: HWND; Msg: Integer; Wparam: WPARAM; Lparam: LPARAM): LRESULT; stdcall;
Begin
case msg of
WM_DESTROY :
Begin
DestroyMenu(MainMenu);
PostQuitMessage(0);
Exit;
End;
WM_CLOSE: SendMessage(wnd, WM_DESTROY, 0, 0);
WM_MENUSELECT:
begin
case LOWORD(Wparam) of
5:
begin
if Lparam
SendMessage(MainWnd, WM_CLOSE, 0, 0);
end;
end;
end;
end;
end;
Проблема такая:
при наведении мыши на пункт 5, окно закрывается, хоть пункт я не нажимаю.
В чём тут дело?
NAlexey (2004-07-15 08:50:00) [1]>webpauk (14.07.04 20:43) [1]
Развлекаешся?
webpauk (2004-07-14 21:10:00) [2]Правильно отлавливать реакцию на нажатие: WM_COMMAND
webpauk (2004-07-14 20:43:00) [3]Правильно читать так:
WM_MENUSELECT:
begin
case LOWORD(Wparam) of
5:
begin
SendMessage(MainWnd, WM_CLOSE, 0, 0);
end;
end;
end;