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

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

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;


Наверх

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