speedo77 Geschrieben 17. September 2008 Geschrieben 17. September 2008 Guten Tag Allerseits, ich initialisiere in der OnInitialUpdate-Funktion einige Sachen. Initialisiert werden alle Sachen. Leider popt aber wenn ich diese Formview lade eine Popupmeldung auf mit "Enter an integer". Diese Warnmeldung "Enter an integer" bezieht sich auf das Editfeld. Es erscheint aber die 9 im Editfeld. Wie bekomme ich diese Popupmeldung weg? void CScanObjectView::OnInitialUpdate() { CView::OnInitialUpdate(); UpdateData(true); m_editfeld_value = (int)9; UpdateData(false); //// Initialisiere andere Sachen... // ... // ... } Vielen Dank im Voraus. Gruß Carsten Zitieren
Klotzkopp Geschrieben 17. September 2008 Geschrieben 17. September 2008 Wie bekomme ich diese Popupmeldung weg?Indem du nicht UpdateData(TRUE) aufrufst. Es gibt zu diesem Zeitpunkt doch gar keine gültigen Werte in den Steuerelementen, die in die Variablen übertragen werden könnten. Und daher kommt auch die Meldung. Zitieren
speedo77 Geschrieben 18. September 2008 Autor Geschrieben 18. September 2008 Stimmt, das habe ich total übersehen. Wenn ich UpdateData(true)- wegnehme dann zeigt er leider nicht mehr die Zahl im Editfeld an. Hm... was kann ich den jetzt machen. Der Konstruktor CScanObjectView() wird nicht aufgerufen, da ich OnIntialUpdate() überschreibe, sonst hätte ich das Editfeld mit dem Konstruktor initialisieren können. ScanObjectView::CScanObjectView() : CFormView(CScanObjectView::IDD) , m_membufs(7) // Works only when I not overwrite the OnInitialUpdate()-Function { } void CScanObjectView::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); DDX_Text(pDX, IDC_MEMBUFS, m_membufs); ... } void CScanObjectView::OnInitialUpdate() { CView::OnInitialUpdate(); m_membufs = (int)8; // Don't work because UpdateData is not true //CScanObjectView(); // Other initialization // .... } Kann man das Editfeld vielleicht anders setzen? //CEdit *z_Membufs = (CEdit *)GetDlgItem(IDC_MEMBUFS); //z_Membufs->... Zitieren
Klotzkopp Geschrieben 18. September 2008 Geschrieben 18. September 2008 Der Konstruktor CScanObjectView() wird nicht aufgerufen, da ich OnIntialUpdate() überschreibe,Das ist Quatsch. Der Konstruktor wird immer aufgerufen. Allenfalls machst du das, was dort passiert, an anderer Stelle rückgängig. sonst hätte ich das Editfeld mit dem Konstruktor initialisieren können.Zum Zeitpunkt des Konstruktoraufrufs existiert das Eingabefeld noch gar nicht. Du kannst dort höchstens die mit dem Eingabefeld verknüpfte Variable initialisieren. Hast du in OnInitialUpdate etwa auch das UpdateData(FALSE) weggelassen? Das sollte schon drinbleiben. Zitieren
speedo77 Geschrieben 18. September 2008 Autor Geschrieben 18. September 2008 Danke Dir. Jetzt funktioniert es *freu* void CScanObjectView::OnInitialUpdate() { CView::OnInitialUpdate(); UpdateData(false); // Übernimmt den im Konstruktor gesetzten Wert ... ... Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.