首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请提示:窗体显示 点窗体 后隐藏窗体 ,失败? 如何改

2012-02-15 
请提示:窗体显示 点窗体 后隐藏窗体 ,失败? 怎么改?实现的过程如下:窗体创建,form1显示, 鼠标定位到 111,1

请提示:窗体显示 点窗体 后隐藏窗体 ,失败? 怎么改?
实现的过程如下:
  窗体创建,form1显示, 鼠标定位到 111,111 模拟点击鼠标左键,form1隐藏 。
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls;

type
  TForm1 = class(TForm)
  Timer1: TTimer;
  procedure CMMouseEnter(var Msg: TMessage); message WM_LBUTTONDOWN;
  procedure Timer1Timer(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure Tform1.CMMouseEnter(var Msg: TMessage); /////鼠标左键按下触发此过程
  anObject : TObject;
begin
  anObject := TObject(Msg.lParam);
  //进入控件
  if anObject <> nil then
  begin
  showmessage('cc');
  end;
end;

procedure TForm1.Timer1Timer(Sender: TObject); // 窗体位置设置在 包含坐标111,111 的位置
begin
  form1.show ;
  setforegroundwindow(form1.Handle );
  setCursorPos(111 ,111 ) ;
  mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,GetMessageExtraInfo());
  mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,GetMessageExtraInfo ());
  timer1.Enabled :=false;
  //form1.Hide ; 去掉‘//’后 不能点击成功不显示‘cc’, 而不去掉‘//’则能成功 显示 ‘cc’。
end;

end.
发狂了, 怎么让这个过程瞬间完成?我用timer1来控制form1.hide,模拟点鼠标后一秒钟 再隐藏窗体 倒是 能成功点击。 但是怎么能够让这个过程瞬间完成?

[解决办法]
form1.Release ;
[解决办法]
form1.Release ;

热点排行