UpdateData(false) geht nicht?!
-
tut mir leid dass ich halt etwas schnell schreibe!
Ich werde in Zukunft darauf Acht geben!Ja klar hab ich die Variable richtig verbunden, denn wenn ich alles debugge geht es ja, und ich hab über den Klasseninpektor die Member Variable dem Editfeld zugeordnet.
Bitte um entschuldigung,w enn ich halt hier am Tüffteln chatten etc bin dann schreib ich oft sehr schnell und verschreib mich leider sehr oft, ES TUT MIR LEID!
-
Dann les deinen Text vor dem Abschicken einfach nochmals durch. Wenn du die Variable korrekt verbunden hast, sollte es auch klappen. Mach mal nen Rebuild All.
-
void CHHCLancrypterDlg::OnDateiFfnen() { UpdateData(true); CString m_strPath; // Wieso m_ (m_ nimmt man für MEMBERVARIABLEN) CString m_strText; // -"- CFileDialog m_dFileOpen(TRUE, NULL, NULL, 0, "Textdateien |*.txt|", this); if(m_dFileOpen.DoModal()==IDOK) { m_strPath=m_dFileOpen.GetPathName(); CFile dateiLesen( m_strPath, CFile::modeRead ); dateiLesen.Read( str, sizeof( str ) ); // Wo ist str definiert? dateiLesen.Close(); m_strText = str; // man könnte gleich den Text nach m_strText einlesen int s = m_strText.Replace('Ì', ' '); m_strNewText=""; // Wozu? m_strNewText=m_strText; // Noch ne Zuweisung? } UpdateData(false); }
Fazit: Ich denke, Du hast m_strText und m_strPath schon im Klassenobjekt definiert. Diese werden durch Deine lokale Definition überdeckt !
-
Sagt mal rede ich irgendwie Chinesisch?
Ich habe gesagat, dass wenn ich die Anwendung debugge und hier auf jeder Zeile des Codes nen Breakpoint setze und somit jede Abfolge etc. genau kontrollieren kann, seh ich das ALLES korrekt abläuft die Variable m_strNewText hat genau den Wert den sie haben soll, und verbunden ist sie AUCH korrekt.Und es funktioniert trozdem nicht, desswegen frag ich ja, denn dass es nicht geht ist einfach Grotesk!
So wegen dem m_TypVariable.
Ich habe mir das irgendwann mal einfach so angewohnt, und es ist auch net schlecht da ich mit m_ dann sofort meine Variablen erkenne.
Wenn du deine Variablen anderst nennen willst, dann mach das so!Fazit: Der Code ist absolut korrekt, aber er aktualisiert die Editbox nicht!
Es funktioniert, wenn ich die Eigenschaften der Editbox von Mehzeilig wieder auf Einzeilig stelle, aber das ist ja Schwachsinn
-
Funktioniert absolut korrekt, aber es funktioniert nicht: paradox.
-
nenn es wie du willst, Fakt ist es funktioniert nicht, sollte aber eigentlich.
Ich find das selber einfach naja scheisse,d enn exakt den code hab ichs chon 100 mal verwendet
-
Dann gibts nur noch 1 Möglichkeit:
Steht innerhalb von DoDataExchange auch
DDX_Text(pDX, IDC_MYEDIT, m_strNewText)
und ist die Funktion OnInitDialog der Basisklasse aufgerufen?
-
jepp tut es:
void CHHCLancrypterDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CHHCLancrypterDlg) DDX_Text(pDX, IDC_EDITTEXT, m_strEditText); DDX_Text(pDX, IDC_NEWTEXT, m_strNewText); //}}AFX_DATA_MAP }
-
Ich schliess mich dann mal dEUs an ... paradox
-
thx great help , naja gut ich schreibe das ganze Prog mal in nem neuen Projekt ganz neu, vielleicht gehts dann, ich versteh die Welt nicht mehr!
-
Stell mal die header, die cpp und die resourcedatei deines dialogs online. Also nicht zum downloaden, sondern direkt als datei, die man sihc im browser anzeigen lassen kann.
-
ok hier die dateie die ihr wolltet, die Dialog.cpp
// HH CLan crypterDlg.cpp : Implementierungsdatei // #include "stdafx.h" #include "HH CLan crypter.h" #include "HH CLan crypterDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CAboutDlg-Dialogfeld für Anwendungsbefehl "Info" class CAboutDlg : public CDialog { public: CAboutDlg(); // Dialogfelddaten //{{AFX_DATA(CAboutDlg) enum { IDD = IDD_ABOUTBOX }; //}}AFX_DATA // Vom Klassenassistenten generierte Überladungen virtueller Funktionen //{{AFX_VIRTUAL(CAboutDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung //}}AFX_VIRTUAL // Implementierung protected: //{{AFX_MSG(CAboutDlg) //}}AFX_MSG DECLARE_MESSAGE_MAP() }; CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) { //{{AFX_DATA_INIT(CAboutDlg) //}}AFX_DATA_INIT } void CAboutDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CAboutDlg) //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CAboutDlg, CDialog) //{{AFX_MSG_MAP(CAboutDlg) // Keine Nachrichten-Handler //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CHHCLancrypterDlg Dialogfeld CHHCLancrypterDlg::CHHCLancrypterDlg(CWnd* pParent /*=NULL*/) : CDialog(CHHCLancrypterDlg::IDD, pParent) { //{{AFX_DATA_INIT(CHHCLancrypterDlg) m_strEditText = _T(""); m_strNewText = _T(""); //}}AFX_DATA_INIT // Beachten Sie, dass LoadIcon unter Win32 keinen nachfolgenden DestroyIcon-Aufruf benötigt m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); } void CHHCLancrypterDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CHHCLancrypterDlg) DDX_Text(pDX, IDC_EDITTEXT, m_strEditText); DDX_Text(pDX, IDC_NEWTEXT, m_strNewText); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CHHCLancrypterDlg, CDialog) //{{AFX_MSG_MAP(CHHCLancrypterDlg) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_BN_CLICKED(IDC_CRYPT, OnCrypt) ON_BN_CLICKED(IDC_DECRYPT, OnDecrypt) ON_COMMAND(ID_DATEI_FFNEN, OnDateiFfnen) ON_BN_CLICKED(IDC_CLEARALL, OnClearall) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CHHCLancrypterDlg Nachrichten-Handler BOOL CHHCLancrypterDlg::OnInitDialog() { CDialog::OnInitDialog(); // Hinzufügen des Menübefehls "Info..." zum Systemmenü. // IDM_ABOUTBOX muss sich im Bereich der Systembefehle befinden. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Symbol für dieses Dialogfeld festlegen. Wird automatisch erledigt // wenn das Hauptfenster der Anwendung kein Dialogfeld ist SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden SetIcon(m_hIcon, FALSE); // Kleines Symbol verwenden // ZU ERLEDIGEN: Hier zusätzliche Initialisierung einfügen return TRUE; // Geben Sie TRUE zurück, außer ein Steuerelement soll den Fokus erhalten } void CHHCLancrypterDlg::OnSysCommand(UINT nID, LPARAM lParam) { if ((nID & 0xFFF0) == IDM_ABOUTBOX) { CAboutDlg dlgAbout; dlgAbout.DoModal(); } else { CDialog::OnSysCommand(nID, lParam); } } // Wollen Sie Ihrem Dialogfeld eine Schaltfläche "Minimieren" hinzufügen, benötigen Sie // den nachstehenden Code, um das Symbol zu zeichnen. Für MFC-Anwendungen, die das // Dokument/Ansicht-Modell verwenden, wird dies automatisch für Sie erledigt. void CHHCLancrypterDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // Gerätekontext für Zeichnen SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0); // Symbol in Client-Rechteck zentrieren int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; // Symbol zeichnen dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } } // Die Systemaufrufe fragen den Cursorform ab, die angezeigt werden soll, während der Benutzer // das zum Symbol verkleinerte Fenster mit der Maus zieht. HCURSOR CHHCLancrypterDlg::OnQueryDragIcon() { return (HCURSOR) m_hIcon; } void CHHCLancrypterDlg::OnCrypt() { UpdateData(true); int m; char temp[9999]; strcpy(temp,m_strNewText); for(m=0;m<m_strNewText.GetLength();m++) { temp[m] += 271; } m_strEditText=temp; UpdateData(false); } void CHHCLancrypterDlg::OnDecrypt() { UpdateData(true); int m; char temp[9999]; strcpy(temp,m_strNewText); for(m=0;m<m_strNewText.GetLength();m++) { temp[m] -= 271; } m_strEditText=temp; UpdateData(false); } void CHHCLancrypterDlg::OnDateiFfnen() { UpdateData(true); CString m_strPath; CString m_strText; CFileDialog m_dFileOpen(TRUE, NULL, NULL,0, "Textdateien|*.txt|",this ); if(m_dFileOpen.DoModal()==IDOK) { m_strPath=m_dFileOpen.GetPathName(); CFile dateiLesen( m_strPath, CFile::modeRead ); dateiLesen.Read( str, sizeof( str ) ); dateiLesen.Close(); m_strText = str; int s = m_strText.Replace('Ì', ' '); m_strNewText=""; m_strNewText=m_strText; UpdateData(false); } } void CHHCLancrypterDlg::OnClearall() { m_strNewText=""; m_strEditText=""; UpdateData(false); }
Die Dialog.h Datei:
// HH CLan crypterDlg.h : Header-Datei // #if !defined(AFX_HHCLANCRYPTERDLG_H__D30554A4_DC73_11D6_84C3_0000E8219A90__INCLUDED_) #define AFX_HHCLANCRYPTERDLG_H__D30554A4_DC73_11D6_84C3_0000E8219A90__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 ///////////////////////////////////////////////////////////////////////////// // CHHCLancrypterDlg Dialogfeld class CHHCLancrypterDlg : public CDialog { // Konstruktion public: char str[99999]; CHHCLancrypterDlg(CWnd* pParent = NULL); // Standard-Konstruktor // Dialogfelddaten //{{AFX_DATA(CHHCLancrypterDlg) enum { IDD = IDD_HHCLANCRYPTER_DIALOG }; CString m_strEditText; CString m_strNewText; //}}AFX_DATA // Vom Klassenassistenten generierte Überladungen virtueller Funktionen //{{AFX_VIRTUAL(CHHCLancrypterDlg) protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung //}}AFX_VIRTUAL // Implementierung protected: HICON m_hIcon; // Generierte Message-Map-Funktionen //{{AFX_MSG(CHHCLancrypterDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnCrypt(); afx_msg void OnDecrypt(); afx_msg void OnDateiFfnen(); afx_msg void OnClearall(); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein. #endif // !defined(AFX_HHCLANCRYPTERDLG_H__D30554A4_DC73_11D6_84C3_0000E8219A90__INCLUDED_)
und die Dialog.rc datei:
//Microsoft Developer Studio generated resource script. // #include "resource.h" #define APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 2 resource. // #include "afxres.h" ///////////////////////////////////////////////////////////////////////////// #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// // Deutsch (Deutschland) resources #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) #ifdef _WIN32 LANGUAGE LANG_GERMAN, SUBLANG_GERMAN #pragma code_page(1252) #endif //_WIN32 #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // TEXTINCLUDE // 1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END 2 TEXTINCLUDE DISCARDABLE BEGIN "#include ""afxres.h""\r\n" "\0" END 3 TEXTINCLUDE DISCARDABLE BEGIN "#define _AFX_NO_SPLITTER_RESOURCES\r\n" "#define _AFX_NO_OLE_RESOURCES\r\n" "#define _AFX_NO_TRACKER_RESOURCES\r\n" "#define _AFX_NO_PROPERTY_RESOURCES\r\n" "\r\n" "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)\r\n" "#ifdef _WIN32\r\n" "LANGUAGE 7, 1\r\n" "#pragma code_page(1252)\r\n" "#endif //_WIN32\r\n" "#include ""res\\HH CLan crypter.rc2"" // Nicht mit Microsoft Visual C++ bearbeitete Ressourcen\r\n" "#include ""l.deu\\afxres.rc"" // Standardkomponenten\r\n" "#endif\r\n" "\0" END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Icon // // Icon with lowest ID value placed first to ensure application icon // remains consistent on all systems. IDR_MAINFRAME ICON DISCARDABLE "res\\HH CLan crypter.ico" ///////////////////////////////////////////////////////////////////////////// // // Dialog // IDD_ABOUTBOX DIALOG DISCARDABLE 0, 0, 235, 55 STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU CAPTION "Info über HH CLan crypter" FONT 8, "MS Sans Serif" BEGIN ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20 LTEXT "HH CLan crypter Version 1.0",IDC_STATIC,40,10,119,8, SS_NOPREFIX LTEXT "Copyright (C) 2002",IDC_STATIC,40,25,119,8 DEFPUSHBUTTON "OK",IDOK,178,7,50,14,WS_GROUP END IDD_HHCLANCRYPTER_DIALOG DIALOGEX 0, 0, 378, 217 STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "HH CLan crypter" FONT 8, "MS Sans Serif" BEGIN EDITTEXT IDC_NEWTEXT,7,7,364,86,ES_MULTILINE | WS_VSCROLL | WS_HSCROLL EDITTEXT IDC_EDITTEXT,7,124,364,86,ES_MULTILINE | WS_VSCROLL | WS_HSCROLL DEFPUSHBUTTON "Verschlüsseln",IDC_CRYPT,7,101,50,14 DEFPUSHBUTTON "Entschlüsseln",IDC_DECRYPT,67,101,50,14 PUSHBUTTON "Felder leeren",IDC_CLEARALL,263,101,50,14 PUSHBUTTON "Beenden",IDOK,321,101,50,14 END #ifndef _MAC ///////////////////////////////////////////////////////////////////////////// // // Version // VS_VERSION_INFO VERSIONINFO FILEVERSION 1,0,0,1 PRODUCTVERSION 1,0,0,1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x1L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040704B0" BEGIN VALUE "CompanyName", "\0" VALUE "FileDescription", "MFC-Anwendung HH CLan crypter\0" VALUE "FileVersion", "1, 0, 0, 1\0" VALUE "InternalName", "HH CLan crypter\0" VALUE "LegalCopyright", "Copyright (C) 2002\0" VALUE "LegalTrademarks", "\0" VALUE "OriginalFilename", "HH CLan crypter.EXE\0" VALUE "ProductName", "Anwendung HH CLan crypter\0" VALUE "ProductVersion", "1, 0, 0, 1\0" END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x407, 1200 END END #endif // !_MAC ///////////////////////////////////////////////////////////////////////////// // // DESIGNINFO // #ifdef APSTUDIO_INVOKED GUIDELINES DESIGNINFO DISCARDABLE BEGIN IDD_ABOUTBOX, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 228 TOPMARGIN, 7 BOTTOMMARGIN, 48 END IDD_HHCLANCRYPTER_DIALOG, DIALOG BEGIN LEFTMARGIN, 7 RIGHTMARGIN, 371 TOPMARGIN, 7 BOTTOMMARGIN, 210 END END #endif // APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Menu // IDR_MENU1 MENU DISCARDABLE BEGIN POPUP "Datei" BEGIN MENUITEM "Öffnen", ID_DATEI_FFNEN MENUITEM "Speichern", ID_DATEI_SPEICHERN MENUITEM SEPARATOR MENUITEM "Beenden", IDOK END END ///////////////////////////////////////////////////////////////////////////// // // String Table // STRINGTABLE DISCARDABLE BEGIN IDS_ABOUTBOX "Inf&o über HH CLan crypter..." END #endif // Deutsch (Deutschland) resources ///////////////////////////////////////////////////////////////////////////// #ifndef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// // // Generated from the TEXTINCLUDE 3 resource. // #define _AFX_NO_SPLITTER_RESOURCES #define _AFX_NO_OLE_RESOURCES #define _AFX_NO_TRACKER_RESOURCES #define _AFX_NO_PROPERTY_RESOURCES #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU) #ifdef _WIN32 LANGUAGE 7, 1 #pragma code_page(1252) #endif //_WIN32 #include "res\HH CLan crypter.rc2" // Nicht mit Microsoft Visual C++ bearbeitete Ressourcen #include "l.deu\afxres.rc" // Standardkomponenten #endif ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED
SO also wenn ihr damit etwas Anfangen könnt
-
Wo ist die resource.h ?
-
Sieht eigentlich ok aus
-
ja eben genau das ist ja mein problem gg
beim debuggen gehts a auch perfekt, aber es geht halt net es funkt alles, aber er aktuallisiert die editbox nicht ich würde sagen schließen wir mit paradox ab, weil das ist einfach paradox
-
Schick mir das Projekt (ohne Debugordner, aber mit resordner), das kann ja nciht angehen, dass so ein Problem ungelöst bleibt
-
hab dir den Link als Mail geschickt, hab den Source hoch geladen