我想拦截一个外部窗口的wm_paint的事件,我怎样判断事件名称,还有这个事件是从哪个窗发出的。
在线等候!急!急!急!
在线等候!急!急!急!
解决方案 »
- 关于中文乱码问题
- 用 Tab键能在不连续的edit中切换吗?
- delphi中怎么调用VC编译的dll中返回的结构体变量,请高手帮忙啊,急死了
- 一个小问题,谢谢
- 关于文件传输,使用udpserver和udpclient,简单问题,希望前辈指点,先谢了。
- 请各位谈谈cpu占用问题
- 如何给一个TV树添加节点和删除节点??????
- 怎样弄一个进度条出来,显示从远程主机读取数据!!!!高分!!!源码最好!!
- 分布式高手请进 100分奖励 现场测试成功就给分 在线等待!!!!!!!!!!!!!!!!!
- 新手有个小问题希望能请高手指教!谢谢!
- 请各位大侠帮帮忙!一个关于DBgrid的问题
- 高分请问:用什么控件做饼图,曲线图报表比较好,并请给出具体例子!!!
不过WM_PAINT是一个过程,要小心使用
PMsg(Msg)^.hwnd就是消息处理的窗体
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls;
const
WM_TestMessage = WM_USER + 2000;
type
TForm1 = class(TForm)
.......
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}
var
HookHandle: HHOOK;function TestHookProc(Code: Integer; WParam: Longint;Msg:Longint): Longint;stdcall;
var
index: integer;
begin
if PMsg(Msg)^.Message = WM_TestMessage then
begin
//if PMsg(Msg)^.hwnd = Form1.Handle then
// add your code here
end
else
begin
// add your code here
end;
end;
Result := CallNextHookEx(HookHandle, Code, WParam, Longint(@Msg));
end;
function SetHook(h:hwnd): boolean;
beginend;procedure TForm1.FormCreate(Sender: TObject);
begin
HookHandle:=SetWindowsHookEx(WH_GETMESSAGE,TestHookProc,0,GetCurrentThreadID);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
Postmessage(handle,WM_TestMessage,0,0);
end;end.