Warum?
-
void CAIDEDlg::OnBnClickedButton3() { UpdateData(TRUE); CSave saveobject; saveobject.save(m_main); }
class CSave { public: CSave() {}; ~CSave () {}; void save(CString asm_file) { CFileDialog dlg(FALSE, ".asm", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Assembler (*.asm)|*.asm||", NULL); dlg.DoModal(); if (dlg.DoModal() == IDOK) { CStdioFile OutFile; if (OutFile.Open(dlg.GetPathName(), CFile::modeCreate | CFile::modeWrite)) { OutFile.WriteString(asm_file); OutFile.Close(); } } } private: };
Wenn ich nun den Button klicke öffnet sich der Dialog ordentlich und ich kann den Namen angeben. Dann klicke ich Speichern und der Dialog öffnet sich nochmal, warum? genauso wenn ich abbrechen klicke
-
dlg.DoModal();
Diese Zeile öffnen den Dialog. Diesen code haste 2x drin!
einmal reicht aus
-
Warum benutzt du so schlechte Thread-Überschriften?
Warum ist dein Code so schlecht?
-
SO hat er gemeint!
Auch die sachen die in der if stehen werden ausgeführt!class CSave { public: CSave() {}; ~CSave () {}; void save(CString asm_file) { CFileDialog dlg(FALSE, ".asm", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "Assembler (*.asm)|*.asm||", NULL); if (dlg.DoModal() == IDOK) { CStdioFile OutFile; if (OutFile.Open(dlg.GetPathName(), CFile::modeCreate | CFile::modeWrite)) { OutFile.WriteString(asm_file); OutFile.Close(); } } } private: };