myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   C++ MFC Fragen (https://mygully.com/showthread.php?t=2188974)

L34D 22.12.10 12:42

C++ MFC Fragen
 
hiho,
Ich habe ein paar Fragen bezüglich C++ MFC:

1.)
Ich will das Text in einer Edit-Control angezeigt sobald man einen Button geklickt hat.

Beispiel:
Button 1 geklickt -> Text 1
Button 2 geklickt -> Text 2

2.)
Ich hab es soweit schon hinbekommen das er eine Zufallszahl kreieren soll. Kann man die Zufallszahl die er "bestimmt" hat irgendwo auslesen und mit der ausgelesenen Zahl dann sagen z.b. bei 1 -> text 1 usw.?

3.)
Ich will Buttons gesperrt haben, sobald man einen Button gedrückt hat soll die gesperrten Buttons aktiviert werden. Wie geht das?


(die Funktion wenn man button geklickt hat ist ja standart :) )

Ich hab schon ein bisschen gegoogelt aber ich hab nicht richtig verstanden wie das ganze gehen soll.

wmosebach 22.12.10 14:17

1) Um den text zu ändern, rufst du die Format-Funktion deiner Edit-Control auf und rufst anschliessend die UpdateData-Funktion auf:

xxx.Format("Dein Text");
UpdateData(FALSE)

2) Die Zufallszahl ist wahrscheinlich vom Typ integer (oder einem sonstigen Zahlentyp). Um diese an ein Edit-Control zu geben, musst du die Zahl zu dem Typ konvertieren, den die Control verlangt (zumeist CString)

// wolltest du z.b. zufallszahlen von 1 bis x erstellen und zu jeder nen anderen text ausgeben?
In dem Fall schau mal nach der "Switch"-Methode

3) Buttons sperren kannst du mit dem Funktionsaufruf:
xxx.EnableWindow(FALSE)
wieder aktivieren:
xxx.EnableWindow(TRUE)


xxx steht in dem Text jeweils für deinen Komponentennamen

tha_specializt 29.12.10 19:51

Zitat:

Zitat von wmosebach (Beitrag 21681650)
1) Um den text zu ändern, rufst du die Format-Funktion deiner Edit-Control auf und rufst anschliessend die UpdateData-Funktion auf:

xxx.Format("Dein Text");
UpdateData(FALSE)

Schwachsinn, das funktioniert NUR DANN wenn er einen CButton über [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] - das ist erst ab einer großen Menge aus Elementen sinnvoll, bei einigen wenigen Knöpfen reicht es völlig, über [Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...] den Text reinzuschreiben - das hat bedeutend weniger Overhead und ist verständlicher. Und warum überhaupt Format() ?? Das ist nur zum FORMATIEREN da - damit setzt man keinen Text bzw. nur solchen der aus verschiedenen Datgentypen besteht, so ist es gedacht.

Zitat:

Zitat von wmosebach (Beitrag 21681650)
2) Die Zufallszahl ist wahrscheinlich vom Typ integer (oder einem sonstigen Zahlentyp). Um diese an ein Edit-Control zu geben, musst du die Zahl zu dem Typ konvertieren, den die Control verlangt (zumeist CString)

Ohgott ..... Zahl zu CString?? Komm ... fang besser GANZ von vorne an, dir fehlen scheinbar so einige grundlegende Infos.
HIER wäre Format() von der Klasse CString sinnvoll (aber auch bitte unsigned und signed beachten), wer in CString einen Dämon der Hölle sieht kann auch mit _itow und _itow64 rumfrickeln. Übrigens : der / dem Control ist es scheissegal welcher Datentyp irgendwo für irgendwas stehen soll, DoDataExchange kümmert sich lediglich um den Transfer der wichtigen Daten, das Control selbst ändert sich dabei nicht.

Zitat:

Zitat von wmosebach (Beitrag 21681650)
// wolltest du z.b. zufallszahlen von 1 bis x erstellen und zu jeder nen anderen text ausgeben?
In dem Fall schau mal nach der "Switch"-Methode

Ohja ... du hast wirklich noch nicht viel Wissen im Bereich C und C++. Warum erzähl ich dir jetzt nicht ansonsten würde man mir noch Beleidigungen andichten. Tip : Es gibt keine Switch-"Methode".

Zitat:

Zitat von wmosebach (Beitrag 21681650)
3) Buttons sperren kannst du mit dem Funktionsaufruf:
xxx.EnableWindow(FALSE)
wieder aktivieren:
xxx.EnableWindow(TRUE)


xxx steht in dem Text jeweils für deinen Komponentennamen

"Komponentennamen" ... is klar.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.