当前位置:主页>delphi源码/MIS软件> 文章内容

[讨论]关于提示窗口(hint)的制作

发布时间:2010-01-22 | QQ免费站
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