如何在控件内更改鼠标光标?

用户名

我有一个类似于Team View软件的远程访问,我想根据“ Controled”部分的鼠标图标更改鼠标光标(在“ Controler”部分,服务器端),就像在Team View软件中所做的那样。

我的软件正在使用A,TPaintBox因为我需要将其他必要的东西做得TPaintBox很好才能正常工作。

TPaintBox具有crDefault默认光标。仅当鼠标位于鼠标中时,如何才能更改此控件(在“控件”部分)TPaintBox

是用于“受控”部分(客户端)中的鼠标捕获图标的代码。

这是我的代码,直到现在尝试更改“控制器”部分(服务器端)中的鼠标图标:

//pbRec is name of TPaintBox used

procedure TForm2.pbRecMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
  if Form2.lblPoint.Caption = 'OCR_NORMAL' then
    pbRec.Cursor := crDefault
  else if Form2.lblPoint.Caption = 'OCR_HAND' then
    pbRec.Cursor := crHandPoint
  else if Form2.lblPoint.Caption = 'OCR_IBEAM' then
    pbRec.Cursor := crIBeam;
end;

所有建议将受到欢迎。

约翰

如果您想在代码中更改光标,则将执行以下操作。

//Context: Timer.Interval = 50; :-)

procedure TForm57.Timer1Timer(Sender: TObject);
var
  p: TPoint;
begin
  if Ord(PaintBox1.Cursor) < Ord(crSizeAll) then PaintBox1.Cursor:= crArrow
  else PaintBox1.Cursor:= Pred(PaintBox1.Cursor);
  //Force Windows to change the cursor by sending a WM_SETCURSOR message.
  PaintBox1.Parent.Perform(WM_SETCURSOR, PaintBox1.Parent.Handle, MakeLParam(HTCLIENT, WM_MOUSEMOVE)); 
  (** //if you're viewing using a slow remote connection you make need to do this: 
  //Wiggle the mouse to force cursor change.
  GetCursorPos(p);
  SetCursorPos(p.x-1, p.y);
  Sleep(100); //needed on slow remote connection.
  SetCursorPos(p.x, p.y);  (**)
end;

如果每次鼠标进入画板时都根据上下文更改光标,则在MouseMove事件中这样做非常浪费。
而是在OnMouseEnter事件中进行更改

procedure TForm57.PaintBox1MouseEnter(Sender: TObject);
begin
  if .... then PaintBox1.Cursor:= crIBeam
  else if .....
  PaintBox1.Parent.Perform(WM_SETCURSOR, PaintBox1.Parent.Handle, MakeLParam(HTCLIENT, WM_MOUSEMOVE));
end;

如果您在远程连接上,则客户端远程端可能会缓存游标。在这种情况下,您可能需要在一侧Sleep(100)摆动,然后向后摆动,以便客户端软件能够检测到鼠标移动并强制刷新光标。

如果您只是希望其中的光标PaintBox是静态的,但与应用程序的其余部分不同,则可以正常工作:

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在控件内更改鼠标光标?

来自分类Dev

如何在切换按钮内更改鼠标光标

来自分类Dev

如何在WPF中更改鼠标光标的指向位置

来自分类Dev

如何在嵌入式Flash上更改鼠标光标?

来自分类Dev

如何在按钮上更改鼠标光标?

来自分类Dev

我如何在Amchart中更改鼠标光标

来自分类Dev

如何在OS X的Xcode中更改鼠标光标?

来自分类Dev

如何在按钮上更改鼠标光标?

来自分类Dev

将鼠标光标位置更改为焦点控件

来自分类Dev

WPF-如何更改鼠标光标颜色

来自分类Dev

如何更改鼠标光标的线宽?

来自分类Dev

WPF-如何更改鼠标光标颜色

来自分类Dev

如何在鼠标光标周围创建形状?

来自分类Dev

如何在qemu中获得鼠标光标?

来自分类Dev

更改标签时如何在鼠标光标下的客户端上设置焦点?

来自分类Dev

如何在Xcode中更改鼠标的电子束光标?

来自分类Dev

如何在具有上下文菜单事件处理程序的组件上更改鼠标光标?

来自分类Dev

如何在新的浏览器中隐藏或更改鼠标光标?

来自分类Dev

如何在Windows 8(.1)中更改鼠标光标图标?

来自分类Dev

如何在登录屏幕上更改鼠标光标和灵敏度/加速度?

来自分类Dev

如何在LibGDX中将鼠标光标限制在窗口的范围内?

来自分类Dev

如何在LibGDX中将鼠标光标限制在窗口的范围内?

来自分类Dev

将鼠标光标更改为等待图标,并防止用户单击任何控件

来自分类Dev

如何隐藏鼠标光标

来自分类Dev

如何捕获鼠标光标?

来自分类Dev

如何隐藏鼠标光标

来自分类Dev

如何捕获鼠标光标?

来自分类Dev

如何翻转鼠标光标?

来自分类Dev

如何在翻转事件上更改光标

Related 相关文章

热门标签

归档