在DELPHI中怎样用自己的弹出菜单代替控件中的弹出菜单呢?请大家帮忙!(300分)

  • 主题发起人 主题发起人 zhongnuo
  • 开始时间 开始时间
Z

zhongnuo

Unregistered / Unconfirmed
GUEST, unregistred user!
能发源码到信箱 更好
我的信箱是
zhongnuo@263.net.cn
 
如果是更改弹出菜单,很简单!有弹出菜单的控件都会有popupMenu 属性.
自己设计一个弹出菜单,然后将控件的 popupMenu 属性
设置成自己的弹了菜单就行了。

是不是要更改弹出菜单项?
 
能不能說說具體 的要求?
 
用applicationevent对右键消息进行处理,并分析当前活动的控件,然后用pop.x,y
 
例如TWebBrowser,他有自己弹出的菜单,但在我的程序中用代码禁用它,弹出自己的菜单
你的意思是不是这样?
如果是这样的,我有这方面的源码,其他控件的方法我想基本也相同。
可以下载以下程序看效果:
http://www.lkgarden.com/lfpsoft/MyMenu.zip

以下为代码
1.加入一个ApplicationEvents,在OnMessage事件中加入以下代码:
procedure TfrmMain.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin

if IsChild(WebBrowser1.Handle, Msg.Hwnd) and
((Msg.Message = WM_RBUTTONDOWN) or (Msg.Message = WM_RBUTTONUP)) then

begin

// dxBarPopupMenu.PopupFromCursorPos //在这里做你想做的事,比如显示你的菜单
Handled:=True;
end;

end;
 
不了解你的需求,感觉只要给控件指定你的popupmenu不就可以了么?
 
lfpsoft回答正确
 
我想提问者的意思可能是指ActiveX控件,该控件其实已经赋予了PopupMenu对象。
 
你们说的方法 我都试了 不能用 请大家帮忙做个 演示 发到我的信箱 好吗?
我的信箱是
zhongnuo@263.net,cn
我把四个帖子的1200分 都给他!
 
这么多的分呀,是不是真的哟[:)]
说说你想做什么吧,这样就可以详细知道你要的效果了,才好赚分呀。
 
不会吧,这种问题1200分,我看值只5分。你说的那个activex是哪一个,让我试试
这种问题已经解决好几次了,就是类似上面的方法
你用swflash.oxc试一下就知道了
 
我说的是真的 就是想做个FLASH播放器而已 可就是屏不掉 控件自己的弹出菜单了
做个演示好吗 我试了 大家说的 方法可就是没效果啊 还有我不知道 怎么抓取
一个窗口的图片了 有的话 一起做好 就更好了 谢谢大家了 !
发到我的 信箱 OK!
zhongnuo@263.net.cn
 

只需如此
procedure Tform2.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin

if Msg.Message = WM_RBUTTONDOWN then
begin

case showo of //记住先判断是那个控件或窗口活动
1:popmemu1.popfromcurpos.x ,popmemu1.popfromcurpos.y //这里怎么写忘了你查一下
2:popmemu2.popfromcurpos.x 。。。。
3:popmemu3.popfromcurpos.x 。。。。
end
end
Handled:=True;
end;

end;


抓图很简单,直接从窗体上拷贝就行了,如果要高效,就用双缓冲。
 
先在窗体上添加一个popupMenu控件,

自己设计好这个PopupMenu

指定你所需控件的popupmenu属性

快给分
 
:)abc_xp, 纯属放屁
 
abc_xp想得太简单了!
看看控件本身有什么属性方法,(这可一定要搞清楚)
说不定其中的东西只要设置一下即可!
再不行就拦截消息!
可不可以把那个控件给我发一个?我试试。gjinkui@163.com
 
有没搞错:
procedure Tform2.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
begin

if Msg.Message = WM_RBUTTONDOWN then
begin

case showo of //记住先判断是那个控件或窗口活动
1:popmemu1.popmenu(mouse.cursor.position.x,mouse.cursor.position.y) ....do what youdo

2:popmemu2.popmenu(mouse.cursor.position.x,mouse.cursor.position.y) ....
3:popmemu3.popmenu(mouse.cursor.position.x,mouse.cursor.position.y) .... 。。。。
end
end
Handled:=True;
end;

end;

在不给分要打屁屁了!:(((
 
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=1354567
关注一下吧没有人提起来呀!用MODEM打电话利用PC机的耳机和麦克风,自己编程如何实现?
(我知道有现成的软件可以用,但是我想自己实现这个上东西)
QQ:65466700
MAIL: along@b2sun.com
TEL :13802785865
http://b2sun.com
请各位大侠多多指教!

 
怎么还没有结束呀?
 
参考下贴:

http://www.delphibbs.com/delphibbs/dispq.asp?lid=1401336
 
后退
顶部