Das Tooltipp-Fenster erzeugen


Hinter den Tooltipps (in VCL-Programmen auch als Hint bezeichnet) verbirgt sich eigentlich nur ein Fenster mit einem eigenen Klassennamen, der vom System vorgegeben ist. Dieses Fenster übernimmt die Aufgabe, Tooltipps anzuzeigen, die Sie einem anderen Element zugeordnet haben. Das Tooltipp-Fenster erzeugen wir mit der Funktion "CreateWindowEx":

hToolTip := CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, nil,
  TTS_ALWAYSTIP or TTS_NOPREFIX or WS_POPUP,
  integer(CW_USEDEFAULT), integer(CW_USEDEFAULT), integer(CW_USEDEFAULT),
  integer(CW_USEDEFAULT), wnd, 0, hInstance, nil);

Von großer Bedeutung ist hier der Klassenname TOOLTIPS_CLASS (eine Konstante für den tatsächlichen Namen Tooltips_Class32), der dem System signalisiert, das wir ein Tooltipp-Fenster erzeugen wollen. Als Stilattribut wählen wir:

Attribut Bedeutung
TTS_ALWAYSTIP Der Tooltipp erscheint auch, wenn das Hauptfenster inaktiv ist. Ohne diese Angabe müsste das Programm im Vordergrund aktiv sein, damit man den Tipp sieht.
TTS_NOPREFIX Das Zeichen "&" wird normalerweise ausgeblendet, so dass man z.B. einen Menüeintrag auch als Tooltipp verwenden kann. Mit diesem Stilattribut kann das umgegangen werden, so dass das Kaufmanns-Und zu sehen ist.

Weitere Attribute sind im MSDN und im PSDK zu finden.


Obwohl wir beim Erzeugen des Tooltipp-Fensters bereits das Attribut "WS_EX_TOPMOST" benutzt haben, legen wir es mit folgendem Aufruf noch einmal als "oberstes Fenster" fest:

SetWindowPos(hToolTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or
  SWP_NOSIZE or SWP_NOACTIVATE);


InitCommonControlsEx

Wenn Sie den Befehl "InitCommonControlsEx" verwenden, müssen Sie für die dwICC-Membervariable die Klasse ICC_BAR_CLASSES benutzen.