大富翁怎么了,为什么没有人助人为乐呢?(10分)

  • 主题发起人 主题发起人 ch_yahuu
  • 开始时间 开始时间
C

ch_yahuu

Unregistered / Unconfirmed
GUEST, unregistred user!
前段时间提了几个问题,因为没给分。所以没人回答我,我想问问:这里没有好心的高手了吗?<br>唉,小弟命苦!<br><br>实不相告,在下真的没分了!对不起了,这是我最后10分,一份心意(物虽有价,情谊无价啊!),给好心的高手。<br>有一问题。想诚心请教!哪位能帮帮我,请给出源代码啊。谢谢了,小弟祝你们新年快乐啊!<br>问题:我在我的程序中放了两个编辑框,我想得到另一程序中编辑框中的内容,把它显示在我的程序中的编辑框中,可是那个窗体上有两个类名一样的EDIT编辑框,我怎么区分他们。<br>也就是说已知一个主窗口上的一个控件句柄(子窗体),如何得到下一个或上一个子窗体的句柄。<br>上文说的,得到两个框中的内容。。。。。(那个程序两个EDIT的类名是一样的。)<br>还有就是不用鼠标判断。。。。。。哪位能做出来?
 
问:已知一个主窗口上的一个控件句柄(子窗体),如何得到下一个或上一个子窗体的句柄。<br>答:方法很多。简单的用<br>&nbsp; &nbsp; var h: HWND;<br>&nbsp; &nbsp; GetWindow(h, GW_HWNDNEXT);<br>问:得到编辑框的内容。<br>答:var h: HWND; s: array[0..1023] of char;<br>&nbsp; &nbsp; SendMessage(h, WM_GETTEXT, 1023, Integer(@s));
 
一段代码。<br>procedure TForm1.BitBtn1Click(Sender: TObject);<br>const<br>&nbsp; ClassName: string = 'TEdit'; &nbsp;//注1<br>&nbsp; WindowText: string = 'Form1';<br>var<br>&nbsp; h, hp: HWND;<br>&nbsp; c: array[0..255] of char;<br>&nbsp; s: array[0..1023] of char;<br>begin<br>&nbsp; hp := FindWindow(nil, PChar(WindowText));<br>&nbsp; if hp = 0 then begin<br>&nbsp; &nbsp; ShowMessage('not found');<br>&nbsp; &nbsp; Exit;<br>&nbsp; end;<br>&nbsp; h := GetWindow(hp, GW_CHILD);<br>&nbsp; while h &lt;&gt; 0 do begin<br>&nbsp; &nbsp; GetClassName(h, c, 255);<br>&nbsp; &nbsp; if c = ClassName then begin<br>&nbsp; &nbsp; &nbsp; SendMessage(h, WM_GETTEXT, 1023, Integer(@s));<br>&nbsp; &nbsp; &nbsp; Memo1.Lines.Add('1: &nbsp;***');<br>&nbsp; &nbsp; &nbsp; Memo1.Lines.Add(s);<br>&nbsp; &nbsp; end;<br>&nbsp; &nbsp; h := GetWindow(h, GW_HWNDNEXT);<br>&nbsp; end;<br>end;<br>注1:Windows中标准的编辑框的窗口类名是“Edit”,用VC编的程序就是“Edit”,<br>&nbsp; &nbsp; &nbsp;Delphi编的程序中的编辑框窗口类名是“TEdit”,<br>&nbsp; &nbsp; &nbsp;VB的是“ThunderTextBox”。
 
谢谢了,我解决了。。。真是太感谢了。。
 
后退
顶部