[讨论]关于提示窗口(hint)的制作
1楼: 请问,哪位老兄知道:
(1)类似Windows 优化大师的提示条怎么设计?
(2)windows xp 中的汽球提示怎么实现?
(3)如何在提示窗口中加入图片和按钮等,是不是只有利用窗口做成异形窗口才能行呀?
请各位高手发表自己的意见呀!
字串7
2楼: (2)windows xp 中的汽球提示怎么实现?
procedure ShowBalloonTip(Control: TWinControl; Icon: integer;
Title: pchar; Text: String);
const
TOOLTIPS_CLASS = ‘tooltips_class32‘;
TTS_ALWAYSTIP = $01;
TTS_NOPREFIX = $02;
TTS_BALLOON = $40;
TTF_SUBCLASS = $0010;
TTF_TRANSPARENT = $0100;
TTF_CENTERTIP = $0002;
TTM_ADDTOOL = $0400 + 50;
TTM_SETTITLE = (WM_USER + 32);
ICC_WIN95_CLASSES = $000000FF;
type
TOOLINFO = packed record
cbSize: integer;
uFlags: integer;
hwnd: THandle;
uId: integer;
rect: TRect;
hinst: THandle;
lpszText: PWideChar;
lParam: integer;
end;
var
hWndTip: THandle;
ti: TOOLINFO;
hWnd: THandle;
apw: PWideChar;
begin
GetMem(apw, Length(Text) * SizeOf(WideChar) + 1);
hWnd := Control.Handle;
hWndTip := CreateWindow(TOOLTIPS_CLASS, nil,
WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP,
0, 0, 0, 0, hWnd, 0, HInstance, nil);
if hWndTip <> 0 then
begin
SetWindowPos(hWndTip, HWND_TOPMOST, 0, 0, 0, 0,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
ti.cbSize := SizeOf(ti);
ti.uFlags := TTF_CENTERTIP or TTF_TRANSPARENT or TTF_SUBCLASS;
ti.hwnd := hWnd;
ti.lpszText := StringToWideChar(Text, apw, Length(Text) * SizeOf(WideChar) + 1);
Windows.GetClientRect(hWnd, ti.rect);
SendMessage(hWndTip, TTM_ADDTOOL, 1, integer(@ti));
SendMessage(hWndTip, TTM_SETTITLE, Icon mod 4, Integer(Title));
end;
end; 字串2 3楼: 可以用其他控件LMD中有一个,相关的控件大富翁,合子上很多 字串4
4楼: 自己继承THINTWINDOW类,再将
Application.hintwindow:=自己继承的类 字串1
5楼: 我也想这个问题,就像NORTON时原HINT窗口一样,上边还有两个按钮,可以进行操作字串5
6楼: (1)答:windows优化大师用的是flatstyle控件,你可以去delphibox下载~ 字串2 7楼: 接受答案了。 字串5
上一篇:用代码如何为字段赋Null值? 下一篇:这样的表怎样合并