如何为`TBitBtn`设置`ElevationRequired`

我需要标记一个TBitBtn(不是TButton),按钮动作需要提升。我设置ElevationRequired为 True,但我没有得到盾牌图标。

要复制,请将 aTButton和 aTBitBtn放在表单上:

procedure TForm1.FormCreate(Sender: TObject);
begin
    Button1.ElevationRequired := True;
    BitBtn1.ElevationRequired := True;
end;

Button1显示有盾牌图标,BitBtn1不是。

回答

这不可能。

VCLTBitBtn所有者绘制的Win32 BUTTON控件。你可以在这里看到:

procedure TBitBtn.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do Style := Style or BS_OWNERDRAW;
end;

因此,TBitBtn没有通过Windows,但手动在Pascal代码中抽取Vcl.Buttons.pas。具体来说,TBitBtn.DrawItem(const DrawItemStruct: TDrawItemStruct)做这幅画。

在这里你可以看到没有提到ElevationRequired.

因此,TBitBtn不支持这个。

一般来说,不要使用TBitBtn; 用于TButton获取本机 Win32 按钮。


以上是如何为`TBitBtn`设置`ElevationRequired`的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>