源码:通过鼠标停靠,取鼠标所在位置的控件类名的示范实例。附源码与实现说明

作者:陆岛工作室



一个示范如何取鼠标所在位置下的控件的类名的例子。

该程序演示了如何通过鼠标位置取得一个控件,并得到所取控件的类名的功能。
代码非常简单,原理更简单,
1. 在窗体上放一个时钟控件 TTimer, 在 TTimer.OnTimer 事件里加入取类名的过程函数 DoGetClassName 
2. DoGetClassName 函数主要实现实时用 GetCursorPos 取当前鼠标的位置
3. 再根据鼠标位置,调用API函数 GetClassName ,就可以取得鼠标位置的控件类名了。
代码真的很简单。却实现了一个非常有用的功能。

示范程序及源码:

procedure TMainForm.BitBtn1Click(Sender: TObject);
begin
  Close;
end;

procedure TMainForm.BitBtn2Click(Sender: TObject);
begin
  SetWindowPos(Handle, HWND_TOPMOST, 
0000, SWP_NOSIZE or SWP_NOMOVE);
end;

procedure TMainForm.DoGetClassName;
var
  P: TPoint;
  H: THandle;
  lpName: PChar;
begin
  GetCursorPos(P); 
//取屏幕指针位置
  H :
= WindowFromPoint(P); // 当前窗口句柄
  GetMem(lpName, 
255);
  GetClassName(H, lpName, 
255); //取类名称
  Edit1.Text :
= lpName;
  FreeMem(lpName, 
255);
end;

procedure TMainForm.Timer1Timer(Sender: TObject);
begin
  DoGetClassName;
end;

下次跟大家介绍一下如何实现屏幕取词的功能。
posted @ 2008-06-11 01:51 陆岛工作室 阅读(...) 评论(...) 编辑 收藏