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

Dal*_*kar 3 delphi winapi cursor delphi-xe4

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

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

注意:我知道如何在不使用HTCAPTION和解决游标问题的情况下实现控制移动

Ser*_*yuz 5

使用WM_SETCURSOR消息处理程序:

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