DDX/DDV-Problem mit EditControl-Feld
-
Ich habe eine Dialogressource mit dem Ressourceneditor erstellt. Darin sind 3 EditControl-Felder. Die ersten beiden dienen der Eingabe von int-Werten, das letzte Feld dient der Eingabe eines float-Wertes.
Für den Datenaustausch habe ich Membervariablen angelegt, die mit den Feldern verknüpft sind. Alle Variablen sind aus der Kategorie Value, d.h mit Bereichsprüfung. Da gab es schon das erste Problem: die beiden Members m_iZahl1 und m_iZahl2 konnte man problemlos erstellen. Die dritte Membervariable m_fZahl3 wurde nur übernommen, wenn man bei den MIN- und MAX-Werten ganzzahlige Einträge eingegeben hat. In der DoDataExchange konnte man aber bei DDV_MinMaxFloat(pDX, m_fZahl3, 10.00001, 99.99999) Nachkommastellen problemlos mit Hand angeben.
Der Dialog wird aus dem Doc des Projektes aufgerufen. In der BlaBlaDoc.h sind Variablen deklariert, die es ermöglichen die Membervariablen zu initialisieren bzw. sie auszulesen. Also vor dem Aufruf Dialog.DoModal() werden die Membervariablen gesetzt, wenn DoModal() IDOK zurückgibt werden die Doc-Variablen mit den Änderungen überschrieben.
Das funktioniert auch so weit ganz gut, allerdings wird die float-Zahl nach 7 Zeichen abgebrochen. Dabei wird die letzte Stelle gerundet. Da ich aber 2 Stellen vor und 5 Stellen nach dem Komma brauche hab ich jetzt ein Problem.
Liegt der Fehler beim EditControl-Feld oder am DDX/DDV-Mechanismus?