社区
Delphi
帖子详情
急,怎样知道PopupMenu是弹出了还是消失了?
SuperQM
2001-02-06 07:51:00
...全文
343
22
打赏
收藏
急,怎样知道PopupMenu是弹出了还是消失了?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jhl2000
2001-02-10
打赏
举报
回复
可用api的anypopup函数来判断
SAsura
2001-02-09
打赏
举报
回复
你可以用新版oicq试一下,左键点击系统托盘中的oicq图标,会弹出一个PopupMenu,再点别的程序,这个菜单是不会消失的,这是我才发现的,不知道算不算Bugs?
iamfool
2001-02-09
打赏
举报
回复
我试了
没有两个POPUP那回事呀,只能出来一个
SAsura
2001-02-08
打赏
举报
回复
TPopupMenu中有三个不同的句柄
1.PopupMenu->Handle //菜单句柄
2.PopupMenu->WindowHandle //处理菜单消息的窗口句柄
3.PopupMenu->Items->Handle //???可能是子菜单句柄
这三个句柄我都试了,都不行。
你用Winsight32可以看到PopupMenu的窗口句柄和类名称,类名称是{#32768:PopupMenu}和Desktop的类名称有些相似,应该是由系统建立的,而且同一时间内只可能有一个这样的窗口,其实同一时间内不论是菜单还是弹出式菜单都只可能有一个。
现在的问题就是找到这个窗口的句柄,由于是系统建立的,而且不返回句柄,所以TPopupMenu累里也没有保存这个句柄,看来是只能用FindWindow或EnumWindows来找了,但是如果传入#32768:PopupMenu的类名的话,是找不到的,不过Winsight32能看到就肯定能找到。另外,这个句柄是变化的,看来是动态创建的。你可以是一下用EnumWindows,应该能找到。
BCB
2001-02-08
打赏
举报
回复
BOOL EnumChildWindows(
HWND hWndParent, // handle to parent window
WNDENUMPROC lpEnumFunc, // pointer to callback function
LPARAM lParam // application-defined value
);
BCB
2001-02-08
打赏
举报
回复
PopupMenu弹出时创建了一个窗体,问题是怎么找到这个窗体的句柄:
API有上个列出当前进程所有窗口的句柄,
我查一下
SuperQM
2001-02-08
打赏
举报
回复
看来我是不是该把这问题放到VC++中去了?
SuperQM
2001-02-08
打赏
举报
回复
to SAsura
我给的是PopupMenu->WindowHandle,
也试过从Form中取Menu然后再传都不行,你有何高见?
SAsura
2001-02-08
打赏
举报
回复
你打开这些窗口的时候有没有用winsight32看一下窗口类和句柄?
SAsura
2001-02-08
打赏
举报
回复
SAsura@263.net
SuperQM
2001-02-08
打赏
举报
回复
to SAsura
要是不信的话,告诉我你的Email,我把界面截给你看看!
SAsura
2001-02-08
打赏
举报
回复
你是怎么打开的?我怎么打不开?是不是右键的那个弹出式菜单?还是他们的弹出式窗口?
一个系统中可以同时弹出两个以上的右键菜单吗?不回吧。
你可以用Winsight32看一看,类名要是我说的那一个的窗口才是弹出式菜单的,我还没有见过有两个那个类名的窗口出现的时候。
SuperQM
2001-02-08
打赏
举报
回复
to SAsura
你说:"同一时间内不论是菜单还是弹出式菜单都只可能有一个",这可未必,我在我的机器上试了,我同时打开了“金山词霸”、我的程序、“输入法”等等的弹出菜单,并且每一个都是有效的,操作完一个还可以操作另一个……
SAsura
2001-02-07
打赏
举报
回复
PopupMenu弹出时创建了一个窗体,问题是怎么找到这个窗体的句柄
to SuperQM:
你用GetWindowInfo传给他的是谁的句柄?
gameboy999
2001-02-07
打赏
举报
回复
我也想知道!!!!!!!!
对了,如何获得当前系统中所有注册了的menu类?即正在运行中的窗体的所有菜单对象。
SuperQM
2001-02-07
打赏
举报
回复
The WM_CONTEXTMENU message notifies a window that the user clicked the right mouse button (right clicked) in the window.
不行的!
没辙了,我用GetWindowInfo,发现它的WINDOWINFO始终不变,连dwWindowStatus也从未改变!!
lixif
2001-02-07
打赏
举报
回复
procedure TForm.WndProc(var Msge: TMessage);
begin
inherited WndProc(Msge);
with Msge do
case Msg of
WM_CONTEXTMENU://PopupMenu弹出时
{在这里添加你的执行代码}
end;
end;
linkie
2001-02-07
打赏
举报
回复
有谁解决了这个问题,请各位告诉我一声呀!
Thank you!
SuperQM
2001-02-07
打赏
举报
回复
是啊,
我用API:GetMenuInfo()和GetMenu***()等,不知为何总是不行,GetLastError得知是参数错误,可是我的参数根本没错啊 :(
BCB
2001-02-07
打赏
举报
回复
呵呵,难度较大,弹出可以跟踪,什么时候又被关了,就没法知道了;
加载更多回复(2)
popupmenu
弹出
位置
popupmenu
弹出
位置向下
弹出
,向上
弹出
,随鼠标上下方位
弹出
.
popupMenu
弹出
菜单
弹出
菜单是停靠在一个View上的一个模式菜单。如果View对象下方有空间,那么
弹出
菜单将显示在停靠对象的下方,否则会显示在上方
弹出
式菜单组件
PopupMenu
C++Builder中的右键菜单组件的详细介绍
Delphi XE7实现的任意位置
弹出
菜单
Delphi XE7实现的任意位置
弹出
菜单
PopupMenu
.VC右击
弹出
菜单
PopupMenu
.VC
弹出
右键菜单
Delphi
5,931
社区成员
262,938
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章