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

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

TrackPopupMenu ? [D6, D7]


frost ©   (2004-02-02 16:29:00) 

Необходимо отобразить всплывающее меню pm в окне с дескриптором HWND.
Пишу
TrackPopupMenu(pm.Handle, TPM_LEFTALIGN or TPM_RIGHTALIGN or TPM_CENTERALIGN, CursorPoint.X,
                 CursorPoint.Y, 0, HWND, 0)
но меню не отображается, что не так?
PS: меню отображается только если в качестве HWND указываю Handle главного окна.
   но мне надо отображать именно на окне с произвольным Handle.


DVM   (2004-02-02 19:11:00) [1]

Этот HWND - это то окно, в которое будут приходить WM_COMMAND, указывающие на выбор пункта из меню. К местоположению меню никакого отношения не имеет.

> но меню не отображается, что не так?

А оно (меню) было создано до этого вообще и пункты в него добавлены?

hMenuPopup:=CreatePopupMenu;
 if (hMenuPopup<>0) then
  begin
   AppendMenu(hMenuPopup, MF_STRING, 1000, pchar(RsMessage201));
   AppendMenu(hMenuPopup, MF_STRING, 1001, pchar(RsMessage202));
   AppendMenu(hMenuPopup, MF_STRING, 1002, pchar(RsMessage203));
  end;
...
...
...

WM_RBUTTONDOWN:
 begin
   TrackPopupMenu (hMenuPopup, 0, LoWord(lParam), HiWord(lParam), 0, Wnd, nil);
   Result := DefWindowProc(wnd, msg, wparam, lparam);
 end;


Наверх

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