Вниз
Скачать: CL | DM;

TrackPopupMenu ?   Найти похожие ветки 

← →
frost ©   (2004-02-02 16:29) [0]

Необходимо отобразить всплывающее меню 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) [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;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.027 c
1-1082651430
Canpek
2004-04-22 20:30
2004.04.11
Запрос совета


1-1080070795
Yermek
2004-03-23 22:39
2004.04.11
ESocketError


3-1079080641
Russko
2004-03-12 11:37
2004.04.11
Table is read only


3-1078472122
Hursand
2004-03-05 10:35
2004.04.11
толстой сервер или толстой клиент


3-1079015732
Rem
2004-03-11 17:35
2004.04.11
Кеширование, зависание транзакции, что еще?




   Наверх