Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Probleme mit Updatedata()

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
05.01.2003, 16:04 Uhr
docreggae



Hallo Leute.

Ich hab mal wieder ein Problem. Ich habe eine Anwendung mit Registerkarten (von dieser Seite nachgebaut). Wenn ich jetzt von meinem Elterndialog auf die Member-Varibabeln zugreife, klappt auch alles perfekt, bis auf UpdateData(). Hier mal mein Code:


C++:
void CInetSecureDlg::OnButton1()
{
CSeite1 S1;
S1.UpdateData(TRUE); //Hier ist der Fehler
if (S1.m_bHistory == TRUE)
{
    MessageBox("TRUE");
}
else
{
    MessageBox("FALSE");
}
}


Im Debug Modus wird dann folgender Code angezeigt:


C++:
BOOL CWnd::UpdateData(BOOL bSaveAndValidate)
{
    ASSERT(::IsWindow(m_hWnd)); // calling UpdateData before DoModal?
        ...


Das verstehe ich aber nicht, weil der Dialog doch schon aufgebaut ist. Was sagt ihr dazu?

Dieser Post wurde am 05.01.2003 um 16:05 Uhr von docreggae editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
06.01.2003, 08:18 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


Hallo,

UpdateData geht schief, da du deinen Dialog nicht anzeigst bzw weil dein Dialog nicht sichtbar ist (IsWindow(...))
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
06.01.2003, 17:06 Uhr
docreggae



Ganau das ist mein Problem. Der Dialog wird ja angezeigt. Ich habe die erste Karteikarte ausgewählt und greife auch auf nur auf diese Varibabeln zu.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.01.2003, 20:53 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
z.B.

C++:
void CHauptDlg::OnButton1()
{
             /* s1 Instanz eines Dialoges */
    CString str= _T("Test");
    s1.Create(IDD_DIALOG1, this);
    s1.ShowWindow(SW_SHOW);
             /* m_str, Member z.B. eines Eingabefeldes im Dialog */
    s1.m_str = str;
    s1.UpdateData(FALSE);

}

funktioniert doch! Wo genau ist denn Dein Problem, bzw. was willst Du genau erreichen?
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.01.2003, 15:04 Uhr
docreggae



Danke für euere Antworten. So sieht jetzt meine komplette Funktion aus:


C++:
void CInetSecureDlg::OnCheckall()
{

CSeite1 S1;
CString jiggy;
GetDlgItem(IDC_CHECKALL)->GetWindowText(jiggy);
if (jiggy == "Check all")
{
    GetDlgItem(IDC_CHECKALL)->SetWindowText("Uncheck all");
    
    CString str= _T("Test");
S1.Create(IDD_SEITE1, this);
S1.ShowWindow(SW_SHOW);

    S1.m_bHistory = TRUE;
    S1.m_bDropList = TRUE;
    S1.m_bTemp = TRUE;
    S1.m_bCookies = TRUE;
    S1.m_bAutoComplete = TRUE;
    S1.m_bFavorites = TRUE;
    S1.UpdateData(FALSE);
    
    
}
else
{
    GetDlgItem(IDC_CHECKALL)->SetWindowText("Check all");
}    
}



Beim Kompilieren kommt aber dieser merkwürdige Fehler, den ich zum ersten Mal sehe und absolut nichts mit anfangen kann:

error C2018: Zeichen '0xa0' unbekannt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.01.2003, 17:43 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Bestimmt ein Tippfehler (" irgendwo vergessen o.ä.). Aber noch etwas anderes:
Wenn Du Deine Instanz von CSeite1 in der Funktion bildest, hat diese nur dort Gültigkeit. Create() kehrt unmittelbar nach Ausführung/Erzeugen des Dialoges zurück. Nach verlassen der Funktion hat dann die Instanz S1 keine Gültigkeit mehr, Dein Objekt wird somit zerstört (zeigt sich evtl. kurz am Monitor und wird sofort wieder geschlossen).
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
07.01.2003, 21:07 Uhr
docreggae



War ganz komisch. Ich habe den Zwischenraum entfernt und der Fehler war weg. Aber whatever. Das Programm funktioniert zwar, aber nicht ganz so, wie ich es wollte. Das Ding poppt innerhalb meiner Anwendung als neues Fenster auf. Es läßt sich dann auch nicht bewegen und oder irgendwelche Nachrichten aulösen. Der Dialog ist aber als TabCtrl schon geöffnet. Ich weiß echt nicht mehr weiter...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
07.01.2003, 22:33 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
pack mal das Projekt als zip, ace etc. und schick's mir mal rüber (ohne Debugordner).
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
08.01.2003, 15:57 Uhr
docreggae



Ist unterwegs.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
08.01.2003, 18:09 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,

Zitat:
docreggae postete
Ist unterwegs.

Aber noch nicht angekommen
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 08.01.2003 um 18:10 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: