子类化窗口控件的窗口过程(系统级替换,与直接替换控件的WndProc方法不是一回事)
2015-08-21 17:56
387 查看
要说灵活性,自然是比不上Delphi自带的覆盖WndProc,或者替换WndProc方法。
参考:http://www.cnblogs.com/key-ok/p/3380556.html
unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; procedure FormCreate(Sender: TObject); private FOldWndProc, FNewWndProc: TFarProc; procedure WindowProc(var Message: TMessage); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WindowProc(var Message: TMessage); begin Message.Result := CallWindowProc(FOldWndProc, Edit1.Handle, Message.Msg, Message.WParam, Message.LParam); end; procedure TForm1.FormCreate(Sender: TObject); begin FNewWndProc := MakeObjectInstance(WindowProc); FOldWndProc := Pointer(GetWindowLong(Edit1.Handle, GWL_WNDPROC)); SetWindowLong(Edit1.Handle, GWL_WNDPROC, LongInt(FNewWndProc)); end; end. // 其它消息做默认处理 Result := DefWindowProc(hWnd, uMsg, wParam, lParam);
参考:http://www.cnblogs.com/key-ok/p/3380556.html
相关文章推荐
- 带logo图片或不带logo图片的二维码生成与解析,亲测成功
- 虚函数表是个什么鬼?
- Android ContentProvider 简单学习
- js String对象中常用方法小结(字符串操作)
- LDA主题模型的训练算法和预测算法
- android开发中与后台通讯中公共参数的解决方案
- Android性能优化典范(二)
- Poj.2398 Toy Storage【数学几何】 2015/08/21
- python2.x 数据模型
- 理解SVG的viewport,viewBox,preserveAspectRatio
- Hibernate中,将session绑定到线程时,在保存和查询数据的代码里,要正确的关闭session
- eclipse
- Example of a full nat solution with QoS
- Example of a full nat solution with QoS
- Gson解析复杂json格式
- 有关linux下redis overcommit_memory的问题
- 第二章 进程管理--笔记
- rsync + inotify
- c和lua之间互相调用方法
- H. 硬币的水问题II