Titel des Windows wird nicht korrekt angezeigt trotz ASCII
-
Ich benutze die *A Funktionen der Win32 API da ich nur mit ASCII Symbole arbeiten will. Trotzdem wird den Caption des Windows mit Quadratchen gezeigt.
Mein Code:
class window { HINSTANCE hInstance_; HWND hWnd_; std::string classname_, caption_; /*...*/ window(HINSTANCE hi, const char* cn, const char* cap, WNDPROC pf); /*...*/}window::window(HINSTANCE hi, const char* cn, const char* cap, WNDPROC pf) :hInstance_(hi), hWnd_(0), classname_(cn), caption_(cap) { WNDCLASSA wndclass; wndclass.style = CS_HREDRAW | CS_VREDRAW; wndclass.lpfnWndProc = pf; wndclass.cbClsExtra = 0; wndclass.cbWndExtra = 0; wndclass.hInstance = hInstance_; wndclass.hIcon = LoadIcon(0, IDI_APPLICATION); wndclass.hCursor = LoadCursor(0, IDC_ARROW); wndclass.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); wndclass.lpszMenuName = 0; wndclass.lpszClassName = classname_.c_str(); if (!RegisterClassA(&wndclass)) { /*...*/ return; } hWnd_ = CreateWindowA(classname_.c_str(), // window class name caption_.c_str(), // window caption WS_OVERLAPPEDWINDOW, // window style 0, // initial x position 0, // initial y position CW_USEDEFAULT, // initial x size CW_USEDEFAULT, // initial y size 0, // parent window handle 0, // window menu handle hInstance_, // program instance handle 0); // creation parameters if (!hWnd_) { /*...*/ return; } }Woran liegt das Problem?
-
Was für einen Wert übergibst du denn als 'cap' an den Ctor?
-
"MainWindow"
-
Und was kommt am anderen Ende raus?
-
CStoll schrieb:
Und was kommt am anderen Ende raus?
Etwas wie kleine Quadraten.
-
Die Sachen werden noch mysteriöser. Ich habe auf die C++ Strings verzichtet und reine "const char*" benutzt. Trotzdem bleibt den Titel beschissen:
http://tinypic.com/view.php?pic=4kcq3w7
-
Ich habe endlich die Lösung gefunden!
Man muss einfach in die Einstellungen des VC++ nach "Character Set" suchen und dies zu "Not set" einstellen!
Dann hat es geklappt!