Delphi 如何为表单设置自定义光标';s标题栏、系统菜单图标以及最小化、最大化和关闭按钮?
是否有Windows API用于设置窗体标题栏、系统菜单图标以及最小化、最大化和关闭按钮的自定义光标 我有一个为给定控件加载和设置游标的函数:Delphi 如何为表单设置自定义光标';s标题栏、系统菜单图标以及最小化、最大化和关闭按钮?,delphi,winapi,vcl,Delphi,Winapi,Vcl,是否有Windows API用于设置窗体标题栏、系统菜单图标以及最小化、最大化和关闭按钮的自定义光标 我有一个为给定控件加载和设置游标的函数: type TFrm_Main = class(TForm) .... private procedure SetCursor_For(AControl: TControl; ACursor_FileName: string; Const ACurIndex: Integer); ... end; const crOpe
type
TFrm_Main = class(TForm)
....
private
procedure SetCursor_For(AControl: TControl; ACursor_FileName: string;
Const ACurIndex: Integer);
...
end;
const
crOpenCursor = 1;
crRotateCursor = 2;
crCursor_Water = 3;
var
Frm_Main: TFrm_Main;
...
procedure TFrm_Main.SetCursor_For(AControl: TControl; ACursor_FileName:
string; const ACurIndex: Integer);
begin
Screen.Cursors[ACurIndex] := Loadcursorfromfile(PWideChar(ACursor_FileName));
AControl.Cursor := ACurIndex;
end;
我用这种方式来表示:
SetCursor_For(Frm_Main, 'Cursors\Cursor_Rotate.ani', crRotateCursor);
但我缺少一种为特定表单部分设置光标的方法,例如表单标题栏、系统菜单图标以及最小化、最大化和关闭按钮。有没有办法为这些表单部件设置光标?处理消息并测试消息参数字段中的以下命中测试代码值之一,并使用返回消息的函数设置光标(Windows API宏TRUE和FALSE与Delphi的类型值一致,因此您只能在那里进行类型转换):
- -标题栏
- -系统菜单图标
- -最小化按钮
- -最大化按钮
- -关闭按钮
type
TForm1 = class(TForm)
private
procedure WMSetCursor(var Msg: TWMSetCursor); message WM_SETCURSOR;
end;
implementation
procedure TForm1.WMSetCursor(var Msg: TWMSetCursor);
begin
case Msg.HitTest of
HTCAPTION:
begin
Msg.Result := LRESULT(True);
Winapi.Windows.SetCursor(Screen.Cursors[crHandPoint]);
end;
HTSYSMENU:
begin
Msg.Result := LRESULT(True);
Winapi.Windows.SetCursor(Screen.Cursors[crHelp]);
end;
HTMINBUTTON:
begin
Msg.Result := LRESULT(True);
Winapi.Windows.SetCursor(Screen.Cursors[crUpArrow]);
end;
HTMAXBUTTON:
begin
Msg.Result := LRESULT(True);
Winapi.Windows.SetCursor(Screen.Cursors[crSizeAll]);
end;
HTCLOSE:
begin
Msg.Result := LRESULT(True);
Winapi.Windows.SetCursor(Screen.Cursors[crNo]);
end;
else
inherited;
end;
end;
从你们的公开数据中,我可以看出你们从未对任何答案投票,也从未接受过任何问题的答案。也许你们不知道我的意思,所以请看