如何的到某一窗口中的某一个控件的句柄(不是用getcursorpos)!!拜托帮帮小的忙好吗??虾哥虾姐!(80分)

  • 主题发起人 主题发起人 sytzlh
  • 开始时间 开始时间
有些控件直接就有一个Handle属性
 
请说详细点儿
 
getforegroundwindow();试试
 
先找到窗口的句柄,findwindow<br>在找控件的句柄,可以使用spy工具得到控件的类名和caption
 
FindWindow+GetWindow<br><br>function GetWindow(Wnd: hWnd; uCmd: byte): hWnd; 得到<br>其中:<br>&nbsp; Wnd //当前window<br>&nbsp; uCmd //关系标志常数, 取值范围如下 <br>GW_CHILD &nbsp; &nbsp; -- 子窗体<br>GW_HWNDFIRST -- 同级窗体中的最前面的<br>GW_HWNDLAST &nbsp;-- 同级窗体中的最后面的<br>GW_HWNDNEXT &nbsp;-- 下一个<br>GW_HWNDPREV &nbsp;-- 前一个<br>GW_OWNER &nbsp; &nbsp;-- 父窗体<br>
 
findwindowEx.
 
如下几个函数可能有用:<br><br>//获取窗口w的Caption或内容;<br>function GetWinText(w:LongInt):string;<br>var mem:PChar;i:integer;<br>begin<br>&nbsp; &nbsp;i:=SendMessage (w,WM_GETTEXTLENGTH,0,0);<br>&nbsp; &nbsp;getmem(mem,i+1);<br>&nbsp; &nbsp;SendMessage(w,WM_GETTEXT,i+1,LongInt(mem));<br>&nbsp; &nbsp;result:=mem;<br>end;<br><br>//得到窗口w的类名<br>function GetWinClass(w: LongInt): string;<br>var buffer: array[0..255] of char;<br>begin<br>&nbsp; Result:='';<br>&nbsp; if w=0 then Exit;<br>&nbsp; if GetClassName(w,Buffer,256)&lt;&gt;0 then Result:=StrPas(Buffer);<br>end;<br><br>//枚举所有子窗口<br>EnumChildWindows(w,@EnumChildProc,0);<br>function EnumChildProc(w:LongInt):boolean;stdcall;
 
接受答案了.
 
后退
顶部