SetWindowTextW wird nicht angezeigt



  • Hallo zusammen, wieder mal ein Problem, bei folgendem Quelltext wird der String im Edit-Fenster nicht angezeigt. Bei MessageBox wird er angezeigt. Weiss jemand Rat ? Ich verwende Windows 7 Professional 64 Bit, VS 2008 Standard.

    void COhne4View::OnRButtonDown(UINT nFlags, CPoint point)
    {
    	// TODO: Fügen Sie hier Ihren Meldungsbehandlungscode ein, und/oder 
           
    
    	this->GetEditCtrl().SetWindowTextW(_T("Meine Texte 233"));
    	UpdateWindow();
    	
    	int len = this->GetEditCtrl().LineLength(this->GetEditCtrl().LineIndex(0));
    	CString path;
    	LPTSTR p = path.GetBuffer(len);
    	this->GetEditCtrl().GetLine(0, p, len);
    	path.ReleaseBuffer();
    
    	MessageBox(path, 0, 0);
    	CEditView::OnRButtonDown(nFlags, point);
    }
    


  • @biter sagte in SetWindowTextW wird nicht angezeigt:

    this->GetEditCtrl().SetWindowTextW(_T("Meine Texte 233"));
    UpdateWindow();

    int len = this->GetEditCtrl().LineLength(this->GetEditCtrl().LineIndex(0));
    CString path;
    LPTSTR p = path.GetBuffer(len);
    this->GetEditCtrl().GetLine(0, p, len);
    path.ReleaseBuffer();

    MessageBox(path, 0, 0);
    CEditView::OnRButtonDown(nFlags, point);

    Nutze SetWindowText statt SetWindowTextW.

    this->GetEditCtrl().SetWindowText(_T("Meine Texte 233"));
    


  • Tut leider auch nicht. Der Cursor ist allerdings verschoben, davor nur Blanks.



  • Kompletter Kot oder nix Hilfe.



  • @biter: Hast du _UNICODE als Makro aktiviert (s.a. Unicode, MBCS and Generic text mappings)?



  • Keine Veränderung. Das Problem wird auch öfters im Netz beschrieben, ohne Lösung. Interessanterweise steht der String im "CEdit-Buffer", wird nur nicht angezeigt, man kann ihn mit GetLine lesen.



  • @biter sagte in SetWindowTextW wird nicht angezeigt:

    Tut leider auch nicht. Der Cursor ist allerdings verschoben, davor nur Blanks.

    Verstehst du warum hier kein ...W stehen sollte?

    Prüfe mal ob du an anderer Stelle Funktionen explizit als Unicode oder ASCII aufrufst. (z.B. MessageBoxA, ...). Erkennbar sind diese am ...A oder ...W Präfix.



  • Mann kann in den Eigenschaften->Allgemein->Zeichensatz zwischen UNICODE und Multi-Byte wählen. Beim Versuch einen Text von einer Datei in die CEditView. mit SerializeRaw zu laden, kommt dasselbe Problem. Man kann ihn mit GetLine lesen, er wird aber im CEdit-Fenster nicht angezeigt. Dort wo ein Text stehen sollte, kommen Blanks.



  • Zu dumm, der Text wird angezeigt, sobald ich eine Taste drücke, entschuldigt, entschuldigt. Bleibt noch das Problem, wie ich den Tastendruck per Code auslösen kann.



  • Also nochmals, Sorry, bei einer Neuanlage hat alles funktioniert. Könnte ein Hardware-Fehler gewesen sein. Dieser alte Laptop ärgert mich immer wieder. Sorry ! und Danke !!!


Log in to reply