发新话题
打印

别具个性化的汽泡提示 (DELPHI)

别具个性化的汽泡提示 (DELPHI)

注: 以下单元可以直接被调用
$ [! e* l' f+ I5 {& `* @# m1 P* {) I) x, f9 j4 U
unit unit1;7 Y, i: L" q. P! C% a6 f6 o
. L5 a# d' O7 {" t
interface
- L2 c  z  N. C4 [( }: E
3 Y% i- m$ t: euses. \: S, V" Y( K6 O/ z
  Windows, Messages, Classes, Controls, Forms, CommCtrl;
6 t/ Z' b& V* ~# u* E$ O$ q! y" K3 f; P8 y2 H5 S
type8 r3 n$ U6 T5 F+ F, p& U
  THintWin=class(THintWindow), k. Y# R$ r2 I: B5 ^7 K, J
  private
6 @0 n7 d$ @$ ]! c9 w# x* n    FLastActive: THandle;
7 ^0 m: w2 M. `: |1 ?  public
5 S, G; D: @5 k7 F( Y    procedure ActivateHint(Rect:TRect;Const AHint:string);
) g9 ~7 k) y/ c6 H9 k    override;
! W8 m/ m* `5 ]& d  end;
7 M& x% R3 A0 x" [4 f
0 l7 F- m* j5 \3 _* A/ Ximplementation
4 S  h" d) `2 r( t& c" f& I$ c, J0 [2 F% R% U% U4 C: C: J8 A0 p
procedure AddTipTool(hWnd: DWORD; IconType: Integer; Title, Text: PChar);
7 q6 B& z1 h7 d9 Y! Vconst% ~% x; Y) N7 V, V
  TTS_BALLOON =$0040;* t- @. j: z" k' v3 t4 J3 _
  TTM_SETTITLE=WM_USER + 32;' ]* V* \7 x! o. j
var  s  w/ X; u7 [+ ^' V
  hWndTip: DWORD;
  P8 C0 |* j8 s; _; B  ToolInfo: TToolInfo;
( E: x3 P9 k0 m! M$ }# Q' ibegin8 F1 t5 o2 r# Q9 M! s" ~6 o
  hWndTip:=CreateWindow(TOOLTIPS_CLASS, nil,2 @$ p0 ~. _1 o; H+ O: M4 I
          WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP,/ r! Y# O1 i$ A
          0, 0, 0, 0, hWnd, 0, HInstance, nil);
; s7 j6 O; v* I# d% R0 ]  if (hWndTip<>0) then5 L, x7 T0 N% e
  begin
% ~6 \  B4 c+ _2 `+ L    ToolInfo.cbSize:=SizeOf(ToolInfo);# I" H9 |: D! \3 ~2 }
    ToolInfo.uFlags:=TTF_IDISHWND or TTF_SUBCLASS or TTF_TRANSPARENT;
4 }9 A# q5 ~& O7 ~0 `    ToolInfo.uId:=hWnd;+ @4 W* k; z) Y: t* M3 [
    ToolInfo.lpszText:=Text;
2 c+ j; a& v  `! ^7 \    SendMessage(hWndTip,TTM_ADDTOOL,1,Integer(@ToolInfo));$ r2 q% k  [. }0 Q
    SendMessage(hWndTip,TTM_SETTITLE,IconType,Integer(Title));
3 y& u1 o) S7 g+ @# t/ g  end;# x- I( y, k- ?' K& F9 o0 o
  InitCommonControls();
" n. b* S. I+ |/ [0 z* y( t6 zend;8 L4 L  A: c9 M5 f
( t9 F- u: H: |) M4 B, C5 P% v
procedure THintWin.ActivateHint(Rect:TRect; const AHint:string);) v( a: y/ J, p4 Y- C2 W
begin
! q3 L0 A% \) K  if FLastActive<>WindowFromPoint(Mouse.CursorPos) then
! T- c7 T+ _3 l$ c4 E5 H6 B: t  AddTipTool(WindowFromPoint(Mouse.CursorPos),1,'星星电脑技术论坛', PChar(AHint));  % ]) J  Y/ w/ b+ r8 \
  FLastActive:=WindowFromPoint(Mouse.CursorPos);6 U- J1 |9 n4 g* O6 F. w
end;
4 K1 r/ b4 L- \, j* c' ?4 J$ x* F3 f4 H! D3 A- W9 Z
initialization" q- Z% f, o9 `  g* C! ?4 [( ~7 W1 r
Application.HintPause:=0;
* G6 Y7 X! @3 ?2 wApplication.ShowHint:=False;2 R4 i; p  o! c: \6 F
HintWindowClass:=THintWin;
8 j% v4 d/ e0 J! QApplication.ShowHint:=True;
& m. l" ^$ Q, c6 Y+ e6 W0 aend.
师父领进门
忽悠在个人

TOP

具个性化的汽泡提示 (DELPHI), J6 E  M+ ^; L; _
/ H5 k% G) R7 O: b
支持 !

TOP

怎么搞的

复制都不能复制以为是用了脚本,把安全设为最高,还是不能,查看源码后,才知道,可能页面本身就加了密,郁闷,害的我,打了半个小时,才把这段代码打完,也不知道能不能用,要是不能,楼主就去死吧?
1 @, D3 S& w- v% b; N有谁想要的,发信经我:fnyygt@126.com

TOP

发新话题
手机号码所在地查询:
Google
IP地址: