即:如何得知某个POPUPMENU当前正显示在屏幕上?
WM_ENTERMENULOOP//menu进入showmodal循环
WM_EXITMENULOOP//离开循环
WM_INITMENU//初始化menu
WM_INITMENUPOPUP//初始化popmenu
你的程序响应这几个消息,after menu init 记数,exitmenuloop 清零,
timer检查记数,>n,destroy menu.
实际上 PostMessage(Handle,WM_LBUTTONDOWN,0,0); 就可让菜单消失。
但我更想知道POPUPMENU当前的状态。
解决了。
aBool:=True;
TrackPopupMenu(PopupMenu1.Handle, ...);
aBool:=False;
在其它事件里:
if aBool then PostMessage(Handle,WM_LBUTTONDOWN,0,0);
这个问题竟然如此简单。没想到。