学习 Message(5): 关于 TApplicationEvents.OnMessage 的第二个参数 可以屏蔽 TWebBrowser右键菜单:
2015-08-28 17:43
351 查看
http://www.cnblogs.com/del/archive/2008/10/25/1319318.html
TApplicationEvents.OnMessage 的第二个参数 Handled 如果是 True, 表示消息已经处理过了, 到此为止.
我们可以利用这个特性来屏蔽一些消息, 譬如给 TWebBrowser 屏蔽右键菜单:
TApplicationEvents.OnMessage 的第二个参数 Handled 如果是 True, 表示消息已经处理过了, 到此为止.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, AppEvnts, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; ApplicationEvents1: TApplicationEvents; procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); procedure FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if Msg.message = WM_LBUTTONDOWN then begin Memo1.Lines.Add('OnMessage'); Handled := False; {Handled 默认是 False, 这句可以省略} // Handled := True; {如果这样, 下面 OnMouseDown 事件将不会得到执行} end; end; procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Memo1.Lines.Add('OnMouseDown'); end; end.
我们可以利用这个特性来屏蔽一些消息, 譬如给 TWebBrowser 屏蔽右键菜单:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, AppEvnts; type TForm1 = class(TForm) WebBrowser1: TWebBrowser; ApplicationEvents1: TApplicationEvents; procedure FormCreate(Sender: TObject); procedure ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); begin if IsChild(WebBrowser1.Handle, Msg.hwnd) and (Msg.message = WM_RBUTTONDOWN) then begin Handled := True; end; end; procedure TForm1.FormCreate(Sender: TObject); begin WindowState := wsMaximized; WebBrowser1.Align := alTop; WebBrowser1.Navigate('http://www.cnblogs.com/del/'); end; end.
相关文章推荐
- Android:LinearLayout布局中Layout_weight的深刻理解
- Windows8.1无法进入BIOS
- App Indexing
- iOS设计模式--迭代器模式
- iOS开发——创建你自己的Framework
- iOS中绘制圆形的函数方法
- Android的安全机制和su概述
- Android Outline,Shadow和Clip
- 关于安卓工程导出带res资源文件的jar的总结
- Android基础入门教程——5.2.1 Fragment实例精讲——底部导航栏的实现(方法1)
- Android Matrix
- Unity中物体跟随鼠标的位置
- Android自定义View的实现方法,带你一步步深入了解View(四)
- Android视图状态及重绘流程分析,带你一步步深入了解View(三)
- 【Android】 由ListView+ ViewHolder想到的
- Android视图绘制流程完全解析,带你一步步深入了解View(二)
- Android LayoutInflater原理分析,带你一步步深入了解View(一)
- iOS中xib设置label等的圆角
- iOS URLWithString返回为空nil的解决方案
- Android Sqlite 使用 注意事项