Hallo,
da ich hier immerwieder gute Tipps bekomme, wenn ich mal nicht weiter weiss, versuch ich hier wieder mein Glück.
Problem:
Meine Software soll allgemein verschiedene Sprachversionen anbieten. Somit müssen sich auch die Tooltips der entsprechenden Sprache anpassen. Die Tooltips werden zwar angezeigt, wenn man die Maus, über zum Beispiel einem Button, bewegt. Allerdings "merkt" sich irgendetwas die vorherigen Sprachversionen des Tooltip-Textes.
Zum Bespiel:
- Als standard Sprache ist englisch eingestellt -> Tooltip wird mit englischem Text angezeigt.
- Sprache wird auf deutsch gestellt -> Tooltip zeigt den englischen Text an, danach wird der deutsche Text drüber geschrieben.
- Sprache wieder auf englisch gestellt -> Tooltip zeigt englischen, dann deutschen, dann wieder englischen Text an.
Es werden also immer alle vorherigen Texte mit angezeigt.
Das beschränkt sich immer auf die jewilige ID des Buttons -> Buttons üben untersich keinen Einfluß aus.
Code
folgender Code veranschaulich, wie ein Tooltip erstellt wird.
Ein Tooltip wird folgendermaßen übergeben:
mit
Ich habe mir die Microsoft-Dokumentation durchgelesen, finde allerdings nichts, was das Problem erklären könnte. Hänge da jetzt schon seit einiger Zeit dran und kann es einfach nicht erklären.
Ich hoffe das Ihr mir hierbei helfen könnt.
mfg Paxo
da ich hier immerwieder gute Tipps bekomme, wenn ich mal nicht weiter weiss, versuch ich hier wieder mein Glück.
Problem:
Meine Software soll allgemein verschiedene Sprachversionen anbieten. Somit müssen sich auch die Tooltips der entsprechenden Sprache anpassen. Die Tooltips werden zwar angezeigt, wenn man die Maus, über zum Beispiel einem Button, bewegt. Allerdings "merkt" sich irgendetwas die vorherigen Sprachversionen des Tooltip-Textes.
Zum Bespiel:
- Als standard Sprache ist englisch eingestellt -> Tooltip wird mit englischem Text angezeigt.
- Sprache wird auf deutsch gestellt -> Tooltip zeigt den englischen Text an, danach wird der deutsche Text drüber geschrieben.
- Sprache wieder auf englisch gestellt -> Tooltip zeigt englischen, dann deutschen, dann wieder englischen Text an.
Es werden also immer alle vorherigen Texte mit angezeigt.
Das beschränkt sich immer auf die jewilige ID des Buttons -> Buttons üben untersich keinen Einfluß aus.
Code
folgender Code veranschaulich, wie ein Tooltip erstellt wird.
Code:
HWND CreateToolTip(int toolID, HWND hWnd, PTSTR pszText)
{
// Get the window of the tool.
HWND hwndTool = GetDlgItem(hWnd, toolID);
//tooltip erstellen
//hInst ist entspricht dem globalen instance handle.
HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
WS_POPUP | TTS_ALWAYSTIP,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
hWnd, NULL,
hInst, NULL);
if (!hwndTool || !hwndTip)
{
return (HWND)NULL;
}
// Associate the tooltip with the tool.
TOOLINFO toolInfo = { 0 };
toolInfo.cbSize = sizeof(toolInfo);
toolInfo.hwnd = hWnd;
toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
toolInfo.uId = (UINT_PTR)hwndTool;
toolInfo.lpszText = pszText;
SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
return hwndTip;
}
Ein Tooltip wird folgendermaßen übergeben:
Code:
CreateToolTip(ID_BUTTON, hWnd, tooltip_button_text[sprachversion]);
Code:
char tooltip_button_text[2][30] = { "englisch", "deutsch" };
Ich habe mir die Microsoft-Dokumentation durchgelesen, finde allerdings nichts, was das Problem erklären könnte. Hänge da jetzt schon seit einiger Zeit dran und kann es einfach nicht erklären.
Ich hoffe das Ihr mir hierbei helfen könnt.
mfg Paxo