获取子窗口句柄问题-寻路兄务必看下(10分)

  • 主题发起人 主题发起人 大狗熊
  • 开始时间 开始时间

大狗熊

Unregistered / Unconfirmed
GUEST, unregistred user!
根据寻路兄所给代码<br>我已经可以获取自己需要的句柄标题,但是还有一个问题<br>就是窗体上的tlabel获取不到<br><br>var<br>hCurrentWindow:HWnd;<br>szText:array[0..254]of char;<br><br>begin<br><br>hCurrentWindow:=GetWindow(Wnd,GW_CHILD);<br>while &nbsp;hCurrentWindow&lt;&gt;0 &nbsp;do<br>begin<br>if &nbsp;GetWindowText(hCurrentWindow,@szText,255)&gt;0 &nbsp;then<br>form1.Memo2.Lines.Add(StrPas(@szText));<br>hCurrentWindow:=GetWindow(hCurrentWindow,GW_HWNDNEXT);<br>end;<br>end;<br><br>用这段代码获取的东西全,但是这种取得NEXT句柄的东西,不是很好用,请高手指点下,怎么能在<br><br><br>function EnumerateChildWindows(hWnd: HWND; lParam: LPARAM): BOOL; stdcall;<br>var<br> &nbsp;ClassName: &nbsp; &nbsp; array [0..255] of Char;<br> &nbsp;WindowText: &nbsp; &nbsp;array [0..255] of Char;<br> &nbsp;I: Integer;<br> &nbsp;strPass: string;<br><br><br>begin<br> &nbsp;FillChar(ClassName, 256, 0);<br> &nbsp;GetClassName(hWnd, ClassName, 255);<br> &nbsp;GetWindowText(hWnd, WindowText, 255);<br><br>// &nbsp;Form1.mmo1.Lines.Add(StrPas(ClassName) + ': ' + StrPas(WindowText));<br><br><br>// &nbsp;EM_GETPASSWORDCHAR<br><br><br><br><br> &nbsp;//GetWindowLong(hWnd, )<br> &nbsp;if ((StrPas(ClassName) = 'TEdit') or (StrPas(ClassName) = 'TLabel')) &nbsp; then<br> &nbsp;{限制获取的句柄类型,并且定义获取内容不为空,如果只捕获密码,则加上<br> &nbsp; &nbsp;and (SendMessage(hWnd, EM_GETPASSWORDCHAR, 0, 0) &lt;&gt; 0) &nbsp;}<br> &nbsp;begin<br> &nbsp; &nbsp;strPass := GetIDandPassword(hWnd);<br><br><br> &nbsp; &nbsp;form1.Memo1.Lines.Add(StrPas(ClassName) + '(' + StrPas(WindowText) + ')');<br> &nbsp; &nbsp;//form1.Memo1.Lines.Add(StrPas(ClassName) + '(' + StrPas(WindowText) + '): ' + strPass);<br> &nbsp;end;<br>Result := True;<br><br>end;<br><br><br>这段代码基础上获取TLABEL内容
 
tlabel控件没有句柄,当然就找不到了.
 
请问tlabel要如何获取内容?
 
获取不到。
 
后退
顶部