In der Console Title ändern



  • Hallihallo,
    ich bin ein neu einsteiger ^^. also ich habe rin problem... unzwar ich mach gerade ein Win32 - Consolen Anwendung und würde jetzt gerne den Title der Console ändern, da ich das Verzeichniss nicht dauernt sehen will.

    Also hier mein bisheriger Code:

    #include <iostream>
    #include <conio.h>
    #include <Windows.h>
    
    using namespace std;
    
    int main()
    {
    
    	int x = 0;
    	cout << "Bitte geben Sie einen Startwert ein: " << endl;
    	cin >> x;
    
    	int y = 0;
    	cout << "Bitte geben Sie einen Endwert ein: " << endl;
    	cin >> y;
    	++y;
    
    	if(x>y)
    	{
    		cout << "Der Startwert MUSS kleiner sein als der Endwert!" << endl;
    		main();
    	}else{
    		cout << "Die Zahlen werden ausgegeben:" << endl;
    
    		while(x<y)
    		{ 
    			cout << x << endl;
    			++x;
    		}
    		cout << "Es wurden alle Zahlen ausgegeben!" << endl;
    	}
    	_getch();
    }
    

    aber ich weiß jetzt nicht weiter... dachte dass das hier die lösung wäre:

    WindwosTitle = "Hochzählen";
    


  • Ohne es jetzt selber getestet zu haben, würde ich auf http://lmgtfy.com/?q=console+set+title+c%2B%2B tippen, also konkret

    SetConsoleTitle( "Hochzählen" );
    

    (Hoffentlich klappt das 'ä'.)



  • nene klappt nicht ^^
    kommt immer:

    Das Argument vom Typ ""const char *"" ist mit dem Parameter vom Typ ""LPCWSTR"" inkompatibel.
    

    Sprich, in den klammern dürfen keine buchstaben erlaubt sein^^ da feile ich gerade noch herum ^^



  • Mach noch #include <tchar.h> und dann bei SetConsoleTitle(_T("Hochzählen"));

    BTW: Hier ist C#, dein Code ist sowas wie C++.



  • okay danke ^^ es hat geklappt 😛

    und der code

    #include <tchar.h>
    

    bindet ja die datei tchat.h ein, und das _T bei

    SetConsoleTitle(_T("Hochzählen"));
    

    sagt aus, dass das was in den Klammern steht, ein Text ist oder? Oder habe ich das falsch verstanden=



  • Das _T(..) macht aus dem übergebenen String Literal ein Wide String Literal falls das Charset auf Unicode steht.



  • Dieser Thread wurde von Moderator/in Dravere aus dem Forum C# und .NET in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hättest dir auch alternativ das:

    #include <tchar.h>
    

    sparen und statt dem _T("x") ein L"x" hinsetzen können. Dann hättest du aber nicht mehr ohne weiteres zwischen Unicode und Multibyte hin- und herwechseln können.



  • Das Problem dabei ist das ihr alle auf LPCWSTR eingeht, SetConsoleTitle ist eine Define die auf SetConsoleTitleW zeigt bzw. Verweißt!

    Benutze SetConsoleTitleA um auf den standart zuzugreifen, und benutze SetConsoleTitle/SetConsoleTitleW um auf den Multibyte Satz zuzugreifen!

    "LPCWSTR = wchar_t* <-- Der Unicode Char bekannt als wchar_t bzw. wide char."

    Korrigiert mich ruhig bei Fehlern aber ich glaube es sollte keiner Vorhanden sein.

    mfg



  • ToxicData schrieb:

    Das Problem dabei ist das ihr alle auf LPCWSTR eingeht, SetConsoleTitle ist eine Define die auf SetConsoleTitleW zeigt bzw. Verweißt!

    Das ist so absolut nicht richtig. Es hängt von den Projekteinstellungen ab. Wenn das Projekt auf MBCS eingestellt ist, verweist SetConsoleTitle auf SetConsoleTitleA und wenn das Projekt ein UNICODE - Projekt ist, dann verweist SetConsoleTitle auf SetConsoleTitleW.

    Das gilt für alle die Winapi - Funktionen, die in ANSI und UNICODE - Versionen vorliegen, analog.

    Wenn man also Strings vom Typ char* benutzen möchte, ist es in den meisten Fällen sinnvoll, das Projekt auf MBCS umzustellen.



  • Funktioniert nicht auch einfach:

    [cpp]
    SetConsoleTitle(TEXT("Hochzählen"));
    [/cpp]
    

    Dabei muss ich nur die Windows.h eingebunden haben.



  • Glen757 schrieb:

    Funktioniert nicht auch einfach:

    [cpp]
    SetConsoleTitle(TEXT("Hochzählen"));
    [/cpp]
    

    mit DEV-C++ bekomme ich ein " õ " an Stelle des " ä ".

    Die in meinen Augen einfachste Variante ä,ö,ü in den Konsolen-Titel zu schreiben ist:

    SetConsoleTitle("Hochz\x84hlen");
    

    #include <windows.h> nicht vergessen.

    Edit: 84 ist der HEX-Wert von ä. Analog dazu gehen demnach auch ü und ö, sowie Ü, Ö

    Galileo



  • Methoden gegen das leidige äöü-Problwm:

    Setlocal
    oder
    mit TippEx die Fehler auch dem Bildschirm korrigieren


Anmelden zum Antworten