SDI - kein UpdateData(...)?
-
Hallo,
ich fange gerade mit MFC an und hab schon wieder eine Anfängerfrage

Erstelle jetzt eine SDI Anwendung und weiß nicht, wie ich da die Eingabefelder auslese bzw Text und Eingabefelder setze. Bei dem Dialoganwendungen habe ich das mit UpdateData(true bzw false) gemacht, wie geht das bei der SDI?
Desweiteren kriege ich Abstürze bei sowas:
m_BufferSizeControl.EnableWindow(FALSE);Also beim Deaktiveren eines Eingabefeldes. Da wirfter einen Fehler und stürzt ab

-
Nun wahrscheinlich deaktivierst Du das Eingabefeld wenn es noch gar nicht angelegt ist.
Den Du kannst weiterhin UpdateData aufrufen. Nur musst Du selbst regeln wann dies geschehen sol. Am einfachten regelt man das mit einem UpdateAllViews aus dem Dokument und einem entsprechenden Hint. Im CFormView überschreibt man OnUpdate und ruft von dort UpdateData auf!
-
Also du meinst, etwa in der Form:
void CUSBTestView::OnUpdate() { UpdateData(FALSE); }Der Aufruf erfolgt dann mit:
void CUSBTestView::Init(void) { m_ErrorText = theDevice->ReturnErrorMessage(); OnUpdate(); }Also m_ErrorText ist ne Member-Variable zu einem Textfeld...
Zur zweiten Geschichte mit dem Deaktivieren von Edit-Feldern:
m_BufferSizeControl.EnableWindow(FALSE);m_BufferSizeControl ist eine Member-Control-Variable auf das Editfeld, selbiges existiert und in einem dialog funktioniert das so...
-
Ich habe gerade herausgefunden, das ich ein
OnIinitialUpdate();aufrufen muss - aber schon mit dem Befehl stürzt das Programm ab....
Der Fehler: Debug Assertion Fault in der wincore.cpp...
und da drin:
ASSERT(::IsWindow(m_hWnd)); // calling UpdateData before DoModal?Also er will mir sagen, das ich UpdateData() nicht vor DoModal aufrufen kann... Aber ich hab doch ein CFormView, also keinen Dialog, wieso brauch ich da DoModal???