自写控件消息捕获的问题. 我写了个控件继承自TCustomControl,我想叫它捕获到系统内所有的鼠标点击事件.无论是点击它自身还是别的窗口,这样的代码要怎么写?另外问下直接继承自TCustomControl的组件应该怎么捕获CM_MOUSEENTER和CM_MOUSELEAVE这两个消息. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 它捕获到系统内所有的鼠标点击事件//-------------------??系统内所有??//-----------------------------unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;type TXCustomControl = class(TCustomControl) private procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; end; TForm1 = class(TForm) Bevel1: TBevel; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}{ TXCustomControl }procedure TXCustomControl.CMMouseEnter(var Message: TMessage);begin inherited; Canvas.TextOut(2,2,'enter'); Message.Result := 1;end;procedure TXCustomControl.CMMouseLeave(var Message: TMessage);begin inherited; Canvas.TextOut(2,2,'leave'); Message.Result := 1;end;procedure TForm1.FormCreate(Sender: TObject);begin with TXCustomControl.Create(Self) do begin Parent := Self; SetBounds(10, 10, 50, 50); Color := clRed; end;end;end. unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls;type TXCustomControl = class(TCustomControl) private procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER; procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE; end; TForm1 = class(TForm) Bevel1: TBevel; procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form1: TForm1;implementation{$R *.dfm}{ TXCustomControl }procedure TXCustomControl.CMMouseEnter(var Message: TMessage);begin inherited; Canvas.TextOut(2,2,'enter'); Message.Result := 1;end;procedure TXCustomControl.CMMouseLeave(var Message: TMessage);begin inherited; Canvas.TextOut(2,2,'leave'); Message.Result := 1;end;procedure TForm1.FormCreate(Sender: TObject);begin with TXCustomControl.Create(Self) do begin Parent := Self; SetBounds(10, 10, 50, 50); Color := clRed; end;end;end. 1、我写了个控件继承自TCustomControl,我想叫它捕获到系统内所有的鼠标点击事件.无论是点击它自身还是别的窗口,这样的代码要怎么写? -----------------------------------------------------------------------------------这个最好要使用全局钩子技术;2、另外问下直接继承自TCustomControl的组件应该怎么捕获CM_MOUSEENTER和CM_MOUSELEAVE这两个消息.---------------------------------------------------------------------------------这2个消息的捕获楼上已经说了,方法你使用楼上的就可以了; 会乐图表格的大师,有项目合作。 请问怎样往一个文本文件里写入数据? 帮帮我 小妹想问如何程序启动时自动访问一个默认的文件 关于字母字符和数字字符组合的排序,怎样写才好呢? 幫我看看!這是一個回車代替TAB鍵 Tcombobox能否显示无3D效果,height属性能改变?在D7中Tedit能做到 请l_jia(我爱善柔) 过来看一下!(1) 救急!!!!Delphi又死了!!!!!!!!!!! FileCreate的问题 大量插入数据,因会有重复数据,用try异常处理快,还是先select在插入快? delphi如何生成绿色软件
//-------------------
??系统内所有??//-----------------------------unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TXCustomControl = class(TCustomControl)
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end; TForm1 = class(TForm)
Bevel1: TBevel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TXCustomControl }procedure TXCustomControl.CMMouseEnter(var Message: TMessage);
begin
inherited;
Canvas.TextOut(2,2,'enter');
Message.Result := 1;
end;procedure TXCustomControl.CMMouseLeave(var Message: TMessage);
begin
inherited;
Canvas.TextOut(2,2,'leave');
Message.Result := 1;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
with TXCustomControl.Create(Self) do
begin
Parent := Self;
SetBounds(10, 10, 50, 50);
Color := clRed;
end;
end;end.
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;type
TXCustomControl = class(TCustomControl)
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
end; TForm1 = class(TForm)
Bevel1: TBevel;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}{ TXCustomControl }procedure TXCustomControl.CMMouseEnter(var Message: TMessage);
begin
inherited;
Canvas.TextOut(2,2,'enter');
Message.Result := 1;
end;procedure TXCustomControl.CMMouseLeave(var Message: TMessage);
begin
inherited;
Canvas.TextOut(2,2,'leave');
Message.Result := 1;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
with TXCustomControl.Create(Self) do
begin
Parent := Self;
SetBounds(10, 10, 50, 50);
Color := clRed;
end;
end;end.
-----------------------------------------------------------------------------------
这个最好要使用全局钩子技术;2、另外问下直接继承自TCustomControl的组件应该怎么捕获CM_MOUSEENTER和CM_MOUSELEAVE这两个消息.
---------------------------------------------------------------------------------
这2个消息的捕获楼上已经说了,方法你使用楼上的就可以了;