[英]How to show Vista style balloon hints in Delphi?
在输入验证时,我使用气球提示而不是消息框。 我的问题是,在Vista上,它们具有圆角的旧XP风格,而不是更新的更像矩形的外观。
我尝试使用CreateWindowEx和tooltips_class32
创建它们,或者使用SendMessageW和EM_SHOWBALLOONTIP
显示Edit的关联EM_SHOWBALLOONTIP
,结果是一样的。 在Visual Studio和C#中执行相同的操作会产生Vista样式的气球提示。
当您在密码编辑中切换Caps Lock时,您可以看到我需要的气球提示示例,就像Windows登录时的那样。
如果您正在使用Delphi 2009,那么添加气球提示相当简单,尽管文档很差。 (惊喜,惊喜)
下一点非常不明显 :
你完成了。 这看起来不像100%vista,可能是由于字体选择。 但它非常接近。
(来源: codegear.com ) ,
从Delphi 2009中可以看到, 审阅者指导每个VCL组件现在都有一个CustomHint属性。 它可以设置为TCustomHint的任何后代。
一定要在Vista中启用气球提示,否则他们将无法显示。
Delphi 2009中的TCustomHint有四个受保护的ShowHint重载,当被调用时,允许您根据需要和特定位置放置TCustomHint:
procedure ShowHint; overload;
procedure ShowHint(Point: TPoint); overload;
procedure ShowHint(Rect: TRect); overload;
procedure ShowHint(Control: TControl); overload;
您需要做的就是以您想要的样式实现提示(或者如果它足够接近,只需从TBalloonHint下降)并使这些方法公开,以便能够随时随地提供提示。
注意:更改TCustomHint的Title属性以更改显示的文本,除非您使用以TControl作为参数的ShowHint。 在这种情况下,它从控件的Hint属性中获取它(并将其放在TCustomHint的Title属性中)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.