DrawText. Problem mit LPCWSTR
-
Hallo,
ich möchte eine GUI unter Windows Mobile realisieren. Soweit ist alles klar.
nur habe ich beim Aufruf von drawText() das Problem mit dem Casten von char [] nach LPCWSTRFolgendes funktioniert:
DrawText(hdc, L"test", sizeof("text"), &rect, DT_WORDBREAK | DT_CENTER);das hier aber nicht:
const char str[] = "test"; DrawText(hdc, str, sizeof(str), &rect, DT_WORDBREAK | DT_CENTER);Mir ist schon klar, dass da irgendwas fehlt, aber was und wo genau? Ich möchte ja nicht jedes mal einen Text erst im Funktionsaufruf direkt übergeben. Außerdem kann man nicht durch irgendeine Einstellung sich dieses UniCode Problem beheben? Mich wundert, dass es in keinem Tutorial erwähnt wird?
Vielen Dank im Vorraus
Grüße
jens
-
Daß das erste funktioniert, ist vermutlich nur Glück - ersetz mal das "Test" durch ein "Hallo Welt!" und schau dir das Ergebnis an.
Ansonsten LPCWSTR ist ein wchar_t-Zeiger (und wchar_t ist etwas größer als char). Also mußt du auch mit wchar's arbeiten:
const wchar_t str[] = L"test"; DrawText(hdc, str, sizeof(str), &rect, DT_WORDBREAK | DT_CENTER); //oder unabhängig von den Compiler-Einstellungen: const TCHAR str[]=_T("test"); DrawText(hdc, str, sizeof(str), &rect, DT_WORDBREAK | DT_CENTER);
-
Vielen Dank, jetzt geht es!