Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben
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.
Geschrieben

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->...

Geschrieben
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.

Geschrieben

Danke Dir. Jetzt funktioniert es *freu*

void CScanObjectView::OnInitialUpdate()

{

CView::OnInitialUpdate();

UpdateData(false); // Übernimmt den im Konstruktor gesetzten Wert

...

...

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 erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...