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!


Anmelden zum Antworten