Ich verwalte eine Win32-Desktop-Anwendung, die Tooltips anzeigt. Dies funktioniert bisher bei vielen XP- und Windows 7-Installationen sehr gut.Windows-Tooltips mit Stil TTS_BALLOON wird bei einigen Installationen nicht angezeigt
Wir erhalten jetzt Berichte von einigen Kunden, dass sie unsere Tooltipps nicht sehen. Der Rechteckige Tooltip (der das TTS_BALLOON
Attribut nicht hat. Aber die mit TTS_BALLOON
erstellten sind nicht sichtbar. Die von einem Kunden gesendeten Protokolldateien geben an, dass CreateWindowEx
ein gültiges Windows-Handle sowie die enthaltenen Koordinaten und die Zeichenfolge zurückgibt. die Maschine besorgt läuft unter Windows XP und wird regelmäßig aktualisiert
Hat jemand ein ähnliches Verhalten aufgetreten
Wie können wir dieses Problem lösen
Source Code.?
gHintInfo.hwnd = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP | TTS_BALLOON,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL,
(HINSTANCE)xvt_vobj_get_attr(TASK_WIN, ATTR_WIN_INSTANCE),
NULL);
Trace(1, "\n### DrawHint %d, hwnd = %08x, Text =\n%s\n###\n\n", __LINE__, gHintInfo.hwnd, tx);
if (gHintInfo.hwnd != NULL)
{
TOOLINFO ti;
ti.cbSize = sizeof (ti);
ti.uFlags = TTF_TRANSPARENT | TTF_ABSOLUTE;
ti.hwnd = hwndParent;
ti.uId = 0;
ti.hinst = NULL;
ti.lpszText = (char *) tx;
GetClientRect (hwndParent, &ti.rect);
dbgrct(ti.rect);
dbgpnt(gHintInfo.LastHintLoc);
SendMessage(gHintInfo.hwnd, TTM_TRACKPOSITION,0, MAKELONG(gHintInfo.LastHintLoc.v, gHintInfo.LastHintLoc.h));
SendMessage (gHintInfo.hwnd, TTM_ADDTOOL, 0, (long) &ti);
SendMessage (gHintInfo.hwnd, TTM_SETDELAYTIME, TTDT_AUTOMATIC, -1);
SendMessage (gHintInfo.hwnd, TTM_SETMAXTIPWIDTH, 0, 500);
SendMessage (gHintInfo.hwnd, TTM_TRACKACTIVATE, TRUE, (long) &ti);
}
Die Protokollausgabe durch diesen Code auf der Maschine erstellt, die nicht die Tooltips nicht diesplay ist:
### DrawHint 474, hwnd = 00090112, Text =
Some text with
multiple lines
###
ti.rect left = 0, top = 0, right = 1280, bottom = 978
gHintInfo.LastHintLoc h = 295, v = 539
(Wir verweisen auf die Koordinaten optimiert des gesamten Bildschirms eingestellt ti.rect, wie Fenster die Werkzeugspitze passt die Größe an der darin enthaltene Text sowieso)
EDIT:. Wir haben tatsächlich eine Konfigurationseigenschaft zu unserer Software, die nichts tut mehr als das Hinzufügen oder das TTS_BALLOON Attribut zu entfernen. Dies löst das Problem auf den betroffenen Maschinen.
ich nicht erinnern muss zugeben, aber tut XP zeigen Blase Stil Tooltips, wenn Sie nicht Luna mit (die Playskool Taskleiste/titlebuttons)? – Robert
In der Tat würde ich fragen, welches Betriebssystem sie verwenden (Win 2k vielleicht?) Und ob sie visuelle Stile oder in Windows Classic ausgeführt werden. –
@David: Es ist bereits in der Post: "Die betroffene Maschine läuft Windows XP und wird regelmäßig aktualisiert." –