Wie bekomme ich numerischen Wert vom Bearbeitungssteuerelement

9

Es tut mir leid, wenn das zu trivial ist, aber ich kann mir nicht vorstellen, wie man einen numerischen Wert in das Edit-Steuerelement eingeben kann. MFC-Bearbeitungssteuerelement, das durch CEdit dargestellt wird Klasse.

Danke.

    
pic11 07.05.2012, 06:42
quelle

3 Antworten

8

CEdit stammt von CWnd ab, also hat es eine Memberfunktion namens GetWindowText , die Sie aufrufen können, um den Text in CEdit abzurufen, und dann in den numerischen Typ int oder double umwandeln - je nachdem, was Sie vom Benutzer eingeben müssen:

%Vor%     
Nawaz 07.05.2012, 06:48
quelle
17

Neben der bereits erwähnten GetWindowText-Methode können Sie sie auch über DDX an einen Integer / Unsigned Integer / Double / Float-Wert binden. Versuchen Sie Folgendes:

%Vor%

wobei m_iNumber ein Mitglied Ihrer CYourAwesomeDialog-Klasse ist.

Sie müssen

anrufen %Vor%

um die Werte aus den Controls in die Variablen zu schreiben. Rufen Sie

auf %Vor%

Um es anders herum zu tun - von den Variablen in den Kontrollen.

BEARBEITEN (Bonus):

Beim erneuten Lesen meiner Antwort habe ich bemerkt, dass UpdateData (...) eine BOOL-Variable benötigt - korrigiert. Also hatte ich eine Idee für Leute, die Lesbarkeit mögen. Da ich immer verwirrt war, welcher Anruf in welche Richtung ging, könnte man ein enum einführen, um es lesbarer zu machen, so (vielleicht in stdafx.h oder einem zentralen Header):

%Vor%

und du müsstest einfach schreiben:

%Vor%

oder

%Vor%     
CppChris 07.05.2012 10:19
quelle
1

Wenn Sie diese Funktionalität regelmäßig benötigen, sagen Sie in mehreren Dialogen, dann können Sie auch Ihre eigene CEdit-abgeleitete Klasse für das Abrufen, Einstellen und Validieren ableiten.

%Vor%

Stellen Sie in etwa sicher, dass die Nachrichtenzuordnung alle anderen Nachrichten an das übergeordnete CEdit übergibt. Sie können es erweitern, um anpassbare untere und obere Grenze und Dezimalstellen Einstellung zu haben.

    
acraig5075 07.05.2012 12:22
quelle

Tags und Links