Visual C++ 2005 --> basics

untread

Erfahrenes Mitglied
Hallo,

bin nun von Visual 6 aufs 2005er umgestiegen, und habe doch gewaltige Veränderungen bemerkt, die vor allem mal die Basics betreffen.

wie kann ich nun einem Textfeld mit dem Namen m_output einen Text mit einem Button zuweisen?

m_output ="Test"; funktioniert nicht ...

danke mfg Harry
 
untread hat gesagt.:
m_output ="Test"; funktioniert nicht ...danke mfg Harry
Was Bedeutet "funktioniert nicht: Wird der geänderte Text nicht angezeigt? Gibt's Fehlermeldungen?
Ansonsten sollten auch die Basics nicht viel anders funktionieren. Hast du auch "UpdateData()" nach der Zuweisung aufgerufen?

Gruß
MCoder
 
Hallo, ne er gibt folgenden fehler aus..

Code:
void CStringTestDlg::OnBnClickedButton1()
{
	UpdateData(TRUE);
	m_output = "Affe";
	UpdateData(FALSE);
}

Code:
error C2679: binary '=' : no operator found which takes a right-hand operand of type 'const char [5]' (or there is no acceptable conversion)
 
Evtl. ist jetzt Unicode voreingestellt, d.h. du musst entweder auf Single Byte zurückstellen oder das _T Makro benutzen:

m_output = _T( "Affe" );

Obwohl, wenn m_output ein CString ist, sollte der das eigentlich verkraften können.
 
Was ist denn m_output vom Typ her?

Wenn es ein CEdit ist, kannst du den UpdateData-Schmonzens vergessen und musst m_output.SetWindowText( "Affe" ) oder m_output.SetWindowText( _T( "Affe" ) ) aufrufen.
 
es ist ein Textfeld IDC_OUTPUT (also ein umbenanntes Static Feld) mit der zugewiesenen Variable m_output
 
Hi,
aus der Fehlermeldung geht hervor, daß dein Compiler den String als char-Array behandelt. Dafür gibt es den '='-Operator nicht. Versuche doch mal, den String als CString zu definieren und dann den String zu übergeben.
Code:
CString myString="Affe";
m_output=myString;
UpdateData(FALSE);
Allerdings scheint es in VS 2005 eine andere Behandlung für CStrings zu geben als bisher. In einer anderen NG wurde mal davon gesprochen, daß es keine Klasse mehr sei, sondern ein Template. Nur mal so als Anmerkung, ich verwende immer noch VC 2003, kann das also nicht beurteilen.

Mfg

langer
 
Man kann Controls zuweisen als auch Variablen. Mach doch mal StringTestDlg.h auf und kopiere die Zeile mit m_output hier rein.
Vor dem m_output sollte CString oder CEdit stehen. Könnte auch int sein.

Alternativ kannst du auch kurz mit dem Mauszeiger über m_output stehen bleiben, dann sollte da ein Hottip mit dem Typ drin auftauchen.
 
Zurück