mikrocontroller.net

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


Autor: S!mply Red (bulb)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: 3357 (Gast)
Datum:

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

Autor: S!mply Red (bulb)
Datum:

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

Autor: Thomas B. (yahp) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Timmo H. (masterfx)
Datum:

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

Autor: S!mply Red (bulb)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sorry, ich habe ganz vergessen zu schreiben, dass ich in MFC 
porgrammiere.

Autor: Timmo H. (masterfx)
Datum:

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

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: S!mply Red (bulb)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.