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
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.
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->...
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.
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 ... ...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden