如何使用Delphi在窗口非客户区使用自定义光标

时间:2014-12-24 13:12:31

标签: delphi winapi cursor delphi-xe4

我有自定义的Delphi VCL控件拦截WM_NCHITTEST消息并返回HTCAPTION以使控件在其父窗口上可移动。

该部分工作正常,但当将鼠标悬停在该控件上时,返回HTCAPTION也会将我的自定义光标重置为Windows默认光标。有什么方法可以使用HTCAPTION并仍然显示我的自定义光标吗?

注意:我知道如何在不使用HTCAPTION的情况下实现控件移动并以此方式解决游标问题

1 个答案:

答案 0 :(得分:5)

使用WM_SETCURSOR消息处理程序:

procedure TCustomVCLControl.WMSetCursor(var Message: TWMSetCursor);
begin
  SetCursor(Screen.Cursors[cr..]);
  Message.Result := 1;
end;