L lodgue Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #1 不要告诉我,按下鼠标移到程序外,而是直接移到程序外.
P pyh_jerry Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #2 你在使用自定义鼠标时应先将,存在一个自已声明的鼠标变量中,以便在以后恢复。 可以让程序判断,当鼠标坐标位于窗口外时恢复鼠标,位于窗口内时重新定义鼠标。
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #3 我这里没问题呀! 哪位有时间测试一下这段代码: http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=206446
Q qf0421 Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #4 试试SetCapture和ReleaseCapture
L lodgue Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #5 cAkk,不是上次的问题.上次的问题已经解决. 这次的问题是: 当我的鼠标移到程序外时,鼠标会来回的抖动.(下面程序放在定时器中) 在我的程序内也发现抖动 procedure TForm1.Timer1Timer(Sender: TObject); var Wnd:hWnd; CursorPos:TPoint; hCursor:HIcon; ThreadldWord; begin hCursor:=LoadCursor(hInstance,PChar('Hand')); //加载Hand光标 GetCursorPos(CursorPos); Wnd:=WindowFromPoint(CursorPos); Threadld:=GetWindowThreadProcessId(wnd,nil); AttachThreadInput(GetCurrentThreadId,Threadld,True); SetCursor(hCursor); //设置为Hand光标 SetCapture(hcursor); AttachThreadInput(GetCurrentThreadId,Threadld,False); end;
cAkk,不是上次的问题.上次的问题已经解决. 这次的问题是: 当我的鼠标移到程序外时,鼠标会来回的抖动.(下面程序放在定时器中) 在我的程序内也发现抖动 procedure TForm1.Timer1Timer(Sender: TObject); var Wnd:hWnd; CursorPos:TPoint; hCursor:HIcon; ThreadldWord; begin hCursor:=LoadCursor(hInstance,PChar('Hand')); //加载Hand光标 GetCursorPos(CursorPos); Wnd:=WindowFromPoint(CursorPos); Threadld:=GetWindowThreadProcessId(wnd,nil); AttachThreadInput(GetCurrentThreadId,Threadld,True); SetCursor(hCursor); //设置为Hand光标 SetCapture(hcursor); AttachThreadInput(GetCurrentThreadId,Threadld,False); end;
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #6 设置整个系统的光标好像不能这样吧? 似乎有一个setsystemcursor函数. 如果只是在自己的程序里面改变光标,看看我的个人信息, 我最近提过一个 类似的问题.
L lodgue Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #8 cAkk:高! var hcursor:Hicon; begin hcursor:=loadcursor(hInstance,PChar('Hand')); SetSystemCursor(hcursor,OCR_NORMAl); end; 能够修改,不过我怎样动态来获取SetSystemCursor(hCur,ID); 中所要的ID值.程序自定义的光标有ID吗?能获取吗?
cAkk:高! var hcursor:Hicon; begin hcursor:=loadcursor(hInstance,PChar('Hand')); SetSystemCursor(hcursor,OCR_NORMAl); end; 能够修改,不过我怎样动态来获取SetSystemCursor(hCur,ID); 中所要的ID值.程序自定义的光标有ID吗?能获取吗?
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #11 为什么要动态获取ID? 这个函数被调用之后就一直起作用了,以后就不用设置了
W Wysywyg Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #12 简单,form上加一个Timer,每隔0.1秒 刷新一次 Screen.Cursor := ????
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-13 #13 根本就不用timer,setsystemcursor之后就一直生效的.
L lodgue Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-14 #14 1.但是用户自定义的光标能该吗? 2.我怎样恢复光标?restorecursor不知行不行,在delphi中无定义,我又不知道 在windows中的哪个dll中?
L lodgue Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-14 #16 移到整个屏幕上任何一个对象(如:按钮,文字,窗口等)上,光标是我的程序中指定的 光标(SetSystemCursor能够实现),在我的程序退出后,光标还原成原来的光标.(注意不同的对象还原后的光标应该不不一样.) 就像SnagIt抓取一个窗口(广义上的包含编辑筐,面板等).
移到整个屏幕上任何一个对象(如:按钮,文字,窗口等)上,光标是我的程序中指定的 光标(SetSystemCursor能够实现),在我的程序退出后,光标还原成原来的光标.(注意不同的对象还原后的光标应该不不一样.) 就像SnagIt抓取一个窗口(广义上的包含编辑筐,面板等).
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-14 #17 "SnagIt抓取一个窗口"的时候是把整个屏幕当成一个位图的吧?
L lodgue Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-15 #18 如你所说.那它通过什么办法,来识别这整个屏幕位图上的不同'窗口'?
C cAkk Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-15 #19 抓屏的时候为什么还要识别窗口? 你不是抓成一张位图吗? 和窗口有什么关系呢?
L lodgue Unregistered / Unconfirmed GUEST, unregistred user! 2000-04-15 #20 给我emali我发给你我的程序,抓取画了红圈的范围. 使用方法: 1.选择 CaptureRange|Object 2.按 Ctrl+B 3.鼠标马上画圈.我点一下鼠标抓去圈中的范围. 我要求鼠标移到任何一个圈中,都是我的自定义的光标形状. 当我点击了鼠标后,光标还原.
给我emali我发给你我的程序,抓取画了红圈的范围. 使用方法: 1.选择 CaptureRange|Object 2.按 Ctrl+B 3.鼠标马上画圈.我点一下鼠标抓去圈中的范围. 我要求鼠标移到任何一个圈中,都是我的自定义的光标形状. 当我点击了鼠标后,光标还原.