![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
PopUp Menu [D6, WinXP]
rOOse © (2006-02-08 13:46:00)Есть такой код:
ListBox := CreateWindow('LISTBOX', '', WS_VISIBLE or WS_CHILD or WS_VSCROLL or LBS_NOTIFY or LBS_STANDARD, 4, 24, 288,100, handle, 0, hInstance, nil);
теперь если я пишу так:
function WindowProc(hWnd, uMsg, wParam, lParam: Integer): Integer; stdcall;
begin
Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
{ Checks for messages }
if (lParam = ListBox ) and (uMsg= WM_RBUTTONDOWN) then DisplayMenu;
if uMsg = WM_DESTROY then halt;
end;
то при клике на listbox меню не выводится. Почему?
XProger (2006-02-09 23:56:00) [1]Что-то по аналогии с:
// Создание главного меню программы
m_main := CreateMenu;
// Меню 'Чат'
m_chat := CreatePopupMenu;
AppendMenu(m_chat, MF_STRING, MENU_CONNECT, 'Соединение');
AppendMenu(m_chat, MF_STRING, MENU_OPTIONS, 'Опции');
AppendMenu(m_chat, MF_SEPARATOR, 0, '-');
AppendMenu(m_chat, MF_STRING, MENU_EXIT, 'Выход');
// Добавляем пункты в главное меню
AppendMenu(m_main, MF_POPUP, m_chat, 'Чат');
AppendMenu(m_main, MF_STRING, MENU_ABOUT, 'О программе');
// Ровняем кнопку 'О программе' по правому краю
ModifyMenu(m_main, 1, MF_BYPOSITION or MF_HELP, MENU_ABOUT, 'О программе');
// Устанавливаем меню для главного окна
SetMenu(hwnd, m_main);
rOOse (2006-02-09 17:14:00) [2]Спасибо!
А как добавить пункты к главному меню н:р File-> Open
а то у меня рядом добавляются?
begin...end (2006-02-08 14:40:00) [3]Ловить WM_CONTEXTMENU, проверять равенство ListBox = HWND(wParam).
Don Nikola (2006-02-08 14:11:00) [4]Может if ( hWnd= ListBox ) and (uMsg= WM_RBUTTONDOWN) then DisplayMenu;