Forum: PC-Programmierung Caption eines Buttons während der Laufzeit ändern


von S!mply R. (bulb)


Lesenswert?

Hallo,

Wie kann ich den Caption eines Buttons während der Laufzeit der 
Anwendung ändern?

Codesnipe den ich gefunden hab:

// Text setzen:
m_MeinButton.SetWindowText( "Okay" );

// Text lesen:
CString strTemp;
m_MeinButton.GetWindowText( strTemp );

Das hab ich bereits versucht, ich habe dem Button eine Controlvariable 
zugewiesen dann m_MeinButton.SetWindowText( "Okay" );.
Kompilieren lässt sich das ganze fehlerfrei, allerdings erhalte ich beim 
Ausführen folgenden Fehler:

Unhandled exception at 0x7c937927 in uCom.net.exe: 0xC0000005: Access 
violation writing location 0x00030ff4.

Danke für euer Tipps!

mfg bulb

von 3357 (Gast)


Lesenswert?

Da muesste sich was mit der Klassenliste machen lassen, die variablen 
heissen be der gesammten klasse gleich.

von S!mply R. (bulb)


Lesenswert?

Ich weiss jetzt nicht genau was du mir sagen willst, bzw. wie das gehen 
sollte?!

von Thomas B. (yahp) Benutzerseite


Lesenswert?

> Wie kann ich den Caption eines Buttons während der Laufzeit der
> Anwendung ändern?

Denkst du, dass man diese Frage ohne Kenntnis von Programmiersprache, 
Klassenbibliothek/Framework und ggf. Plattform beantworten kann?

von Timmo H. (masterfx)


Lesenswert?

Ich würde es jetzt über WinAPI mal versuchen
1
SetWindowText(hwnd, TEXT("Neuer Text"));
Wobei hwnd das Handle des Buttons ist. Zumindest habe ich damit schonmal 
den Buttontext in fremden Anwendungen geändert.

von S!mply R. (bulb)


Lesenswert?

Sorry, ich habe ganz vergessen zu schreiben, dass ich in MFC 
porgrammiere.

von Timmo H. (masterfx)


Lesenswert?

>Sorry, ich habe ganz vergessen zu schreiben, dass ich in MFC
>porgrammiere.
Das hindert dich ja nicht daran direkt die WinAPI zu verwenden

von Karl H. (kbuchegg)


Lesenswert?

S!mply Red wrote:
> Sorry, ich habe ganz vergessen zu schreiben, dass ich in MFC
> porgrammiere.

Dann kommt es auch darauf an, wo du die Caption setzt.
Wenn du versuchst sie zu früh zu setzen, dann ist die
Control Variable noch nicht mit dem Control verbunden
worden. In zb. einem Dialog ist der früheste Zeitpunkt
an dem du das machen darfst die OnInitDialog().

Trotzdem: Normalerweise gibt es da eine Assertion und keine
Access Violation. Eine Access Violation weist auf ein schwer-
wiegenderes Problem hin, als das man das mit nur einer Zeile
Code erraten könnte.

von S!mply R. (bulb)


Lesenswert?

Ich hab heute einen neuen Versuch gestartet und o Wunder, es 
funktioniert.
Ich erhalte keine Fehlermeldung mehr, ich habe zwar nix am Code geändert 
und es lag auch nicht daran,dass ich das Projekt letze Woch nicht 
mehrmals neu erstellt hätte. Keine Ahnung wo der Fehler lag aber es 
funktioniert nun ;)

Mfg bulb

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.