如何将鼠标定位到窗体的左上角(窗体的0,0位置)(50分)

  • 主题发起人 主题发起人 dhzy
  • 开始时间 开始时间
D

dhzy

Unregistered / Unconfirmed
GUEST, unregistred user!
要用窗体句柄的方法实现,如窗体可以在屏幕上工人拖动,但按下某一按钮时鼠标指向窗体的左上角(不是屏幕的左上角)。
 
利用TForm的ClientToScreen得到窗体左上角的屏幕坐标<br>然后用API:SetCursorPos来定位鼠标的位置
 
不好意思,因为以前是用的CB,所以不能给你写DELPHI的例子<br>
 
请问有没有例子?
 
对不起,刚才的问题写错了,不是点击按钮的窗体左上角,而是特定的其它的窗体的左上角(如屏幕上有两个窗体,为窗体1和窗体2,当点击窗体1上的按钮时,先将窗体2激活为当前窗体,再将鼠标定位到其左上角0,0)
 
如果是点击左上角标题栏上.好象要截获鼠标在标题栏上的事件,如果你窗体的风格是bsNone的话,就不需要了<br><br>激活窗体可以用SetFocus这个函数<br><br>至于定位鼠标,我在上面已经讲述了.<br><br>因为对PASCAL不熟悉,所以不知道怎么写例子给你<br><br><br>
 
Form2.SetFocuse();
 
窗体2不是用delphi开发的,不能用form2.setfocuse将其设为输入焦点,需用窗体句柄的方法实现。
 
不会吧,没人答?不难啊!<br><br>得到 Handle 应该会吧,然后:<br>var<br>&nbsp; Rect: TRect;<br><br>GetWindowRect(Handle, Rect);<br>SetCursorPos(Rect.Left, Rect.Top);
 
setcursorpos(0,0);<br>就可以了
 
如果FORM2不是自己的<br>可以通过API函数来显示 SetWindowPos
 
如何撤消对鼠标的锁定呢?
 
to 青云<br>&nbsp; SetxxxxRect(nil);<br><br>记不清了
 
Var Hand: THandle;<br>&nbsp; &nbsp; GWI: TagWindowInfo;<br>&nbsp; &nbsp; P: TPoint;<br>Begin<br>&nbsp;Hand := FindWindow(nil,'应用程序的标题');<br>&nbsp;GetWindowInfo(Hand,GWI);<br>&nbsp;P.X := GWI.rcWindow.Left; <br>&nbsp;P.Y := GWI.rcWindow.Top;<br>&nbsp;SetCursorPos(P);<br>End;
 
GetWindowRect<br>Then<br>SetCursorPos
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
602
import
I
后退
顶部