各位高手注意:已知另外一个窗体的button的handle,如何截取它的单击消息,连到我的窗体中的一个过程??好像用到消息子类化,,,帮助要求有源码,而且编译通过才能给分,因为我有源码,但通不过:)
解决方案 »
- 用SQL语句向Access中保存和提取图片
- 真正的pascal版zlib库出现了
- Table 连接sql server数据库的问题!
- 小问题!~~~~~~~
- 要实现RSA加密,请问如何判断一个上百位十进制的数字是素数?
- 有一种星光叫记忆--回顾张国荣九部经典影片
- 我做了一个bpl,可是当使用这个bpl编译时还需要我bpl中的dcu,有没有办法把duc全包括到bpl中或一个文件中,否则duc太多了
- 求助:一个非常奇怪的问题,用了 dipose() ,反而不行了,这是为什么啊?谢谢!
- self 是 對象 還是 指向對象的指針?
- 各位救小弟一马,谁有或者那里有关于计算机方面的中英文对照资料!
- 有个问题,进来看看,UP有分,急!!!!!!!!!!
- Help ME,我已经是穷途暮路了!
SendMessage(我的窗体.Handle,WM_xxx,0,0);
在我的窗体中处理WM_xxx消息就可以了
function SubClassWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM):LResult;stdcall;i:=GetWindowLong(Button1.Handle,GWL_WNDPROC);
SetWindowLong(Button1.Handle,GWL_WNDPROC,Longint(@SubClassWndProc));恢复
SetWindowLong(Button1.Handle,GWL_WNDPROC,i);在函数中处理消息!
在另一程序中一接收消息(上述消息)的过程
procedure ReveiveMessage(var Msg: TMessage); Message 自定义的消息;
在此执行需要的过程
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
end;var
Form1: TForm1;
i:integer;
function SubClassWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM):LResult;stdcall;function SubClassWndProc(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: LPARAM):LResult;stdcall;
begin
if Msg = WM_LBUTTONUP then
begin
Showmessage('');
Result := 0;
end
else
begin
Result := CallWindowProc(Pointer(i),Form1.Button1.handle,Msg,WParam,LParam);
end;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
i:=GetWindowLong(Button1.Handle,GWL_WNDPROC);
SetWindowLong(Button1.Handle,GWL_WNDPROC,Longint(@SubClassWndProc));
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
SetWindowLong(Handle,GWL_WNDPROC,LongInt(Pointer(i)));
end;