在输入验证时,我使用气球提示而不是消息框。我的问题是,在Vista上,他们有旧的XP风格的圆角,而不是更新的更像矩形的外观。
我尝试使用CreateWindowEx和tooltips_class32创建它们,或者使用SendMessageW和EM_SHOWBALLOONTIP显示编辑的相关气球提示,结果是相同的。在Visual Studio和C#中做同样的事情会得到一个Vista风格的气球提示。
你可以看到一个我需要的气球提示的例子,当你在密码编辑中切换Caps Lock时,就像在Windows登录时一样。
发布于 2008-11-18 09:03:46
正如可以在Delphi 2009 reviewers guide中读取的那样,每个VCL组件现在都有一个CustomHint属性。它可以设置为TCustomHint的任何后代。
确保在Vista中启用气球提示,否则它们不会显示。
发布于 2008-11-18 16:51:18
Delphi2009中的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。在这种情况下,它从控件的提示属性中获取它(并将它放在TCustomHint的Title属性中)。
https://stackoverflow.com/questions/298190
复制相似问题