D dhzy Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-25 #1 请问窗体类名为wswindow是什么的?为何在它下面的按钮或窗体无法用findwindex找到其句柄?屏幕上的坐标与窗体上的坐标如何转化(是否和分辨率有关)?
T takashiki Unregistered / Unconfirmed GUEST, unregistred user! 2003-08-25 #2 》》屏幕上的坐标与窗体上的坐标如何转化<br>ClientToScreen(API)<br>ScreenToClient(API)
桦 桦树皮 Unregistered / Unconfirmed GUEST, unregistred user! 2003-09-11 #4 方法:<br> var<br> MyPoint:TPoint;<br> ScPoint:TPoint;<br> begin<br> MyPoint.x:=1;<br> MyPoint.y:=2;<br> ScPoint:=ClientToScreen(MyPoint);<br> end;<br> 注:ScPoint为相对于屏幕上的点
方法:<br> var<br> MyPoint:TPoint;<br> ScPoint:TPoint;<br> begin<br> MyPoint.x:=1;<br> MyPoint.y:=2;<br> ScPoint:=ClientToScreen(MyPoint);<br> end;<br> 注:ScPoint为相对于屏幕上的点
P pihome Unregistered / Unconfirmed GUEST, unregistred user! 2003-09-11 #5 //为何在它下面的按钮或窗体无法用findwindex找到其句柄<br>你用 EnumChildWindows 遍历看看结果如何
D dhzy Unregistered / Unconfirmed GUEST, unregistred user! 2003-09-11 #6 我用spy++查看也找不到窗体内按钮的句柄,只能显示出主窗体为wswindow类,在它里面的按钮句柄显示不出来。
P pihome Unregistered / Unconfirmed GUEST, unregistred user! 2003-09-11 #7 那应该窗体内的按钮是没有Handle的,比如说你放一些不是从 TWinControl 继承下来的控件,如 TSpeedButton,TImage 之类的,那你在spy++中也看不到有这些控件存在
D dhzy Unregistered / Unconfirmed GUEST, unregistred user! 2003-09-11 #8 那如何才能用鼠标很准确的点击它里面的按钮呢?(因为无法找到其句柄,只能用坐标来定位,不知如何将鼠标定位到其窗体上某一点的位置)
P pihome Unregistered / Unconfirmed GUEST, unregistred user! 2003-09-11 #9 定位就不太好办了,除非你事先知道它的坐标,那么发送给窗体句柄就可以了,比如<br>var<br> h: HWND;<br> X,Y: Integer;<br>begin<br> h:=FindWindow(Nil,'TForm1');<br> X:=16;<br> Y:=16;<br> SendMessage(h,WM_LButtonDown,MK_LBUTTON,Y shl 16 or X);<br> SendMessage(h,WM_LButtonUP,MK_LBUTTON,Y shl 16 or X);<br>end;<br>
定位就不太好办了,除非你事先知道它的坐标,那么发送给窗体句柄就可以了,比如<br>var<br> h: HWND;<br> X,Y: Integer;<br>begin<br> h:=FindWindow(Nil,'TForm1');<br> X:=16;<br> Y:=16;<br> SendMessage(h,WM_LButtonDown,MK_LBUTTON,Y shl 16 or X);<br> SendMessage(h,WM_LButtonUP,MK_LBUTTON,Y shl 16 or X);<br>end;<br>