PostMessage(Handle, CM_EXIT, 0, 0);可靠吗?
兄弟姐妹们, 我向一个Edit发送了一条消息它却没收到, 目的是让收到消息的控件失去焦点就相当于让其触发OnExit事件, 如何解决的?
测试程序如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, SUIEdit, SUIButton;
const
WM_EditExitMsg = WM_User+100;
type
TForm1 = class(TForm)
suiButton1: TsuiButton;
suiEdit1: TsuiEdit;
suiEdit2: TsuiEdit;
Edit1: TEdit;
Button1: TButton;
procedure suiButton1Click(Sender: TObject);
procedure suiEdit1Exit(Sender: TObject);
private
{ Private declarations }
procedure BurstOnExit;
public
{ Public declarations }
end;
var
Form1: TForm1;
p:tpoint;
i:hwnd;
implementation
{$R *.DFM}
procedure TForm1.BurstOnExit;
var
Handle: THandle;
begin
GetCursorPos(P);
Handle:= WindowFromPoint(Mouse.CursorPos);
PostMessage(Handle, CM_EXIT, 0, 0);
end;
procedure TForm1.suiButton1Click(Sender: TObject);
begin
BurstOnExit;
end;
procedure TForm1.suiEdit1Exit(Sender: TObject);
begin
ShowMessage('Receive!');
Close;
end;
end.