000
10.02.2003, 10:43 Uhr
bIOHAZARd
|
Hi,
ich programmiere gerade ein kleines dialogfeldbasiertes tool. unter anderem soll man in dem dialog einen pfad zu einer ausführbaren datei angeben. habe zu dem zweck einerseits ne normale textbox und zum andern daneben einen button 'Find...' mit dem man eine CFileDialog-box öffnen kann. klickt der benutzer auf OK wird per GetPathName() der dateiname samt pfadangabe in m_strProgramFile (CString) kopiert... durch ein UpdateData(false) steht der pfad dann in der o.g. textbox.... relativ simpel.
in dem dialog ist auch noch ein button zum speichern der einstellungen... gespeichert wird indem ich ein objekt, das als eigenschaften die aktuellen einstellungen hat, serialisiere.
nun zum seltsamen part: wenn ich manuell einen dateinamen in die textbox schreibe und dann auf speichern klicke funktioniert alles wunderbar, beim nächsten start werden die einstellungen korrrekt wiederhergestellt.
wenn ich aber nun über den button 'Find...', also der CFileDialog-box eine datei auswähle und der dateiname in die textbox geschrieben wird, klappt das speichern der einstellungen nicht mehr.
es scheint direkt mit der CFileDialog-box zu tun zu haben: wenn ich den aufruf der dialogbox über m_ldFile.DoModal(); auskommentiere und m_strProgramFile = "auf irgendwas fest setze", dann funktioniert das serialisieren, also das speichern der einstellungen wieder.
Die Funktion des 'Find...'-buttons:
Code: |
void CMyDlg::OnBfindexe() { static char BASED_CODE szFilter[] = "Program Files (*.exe)|*.exe||";
CFileDialog m_ldFile(TRUE, ".exe", m_strProgramFile, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter); if(m_ldFile.DoModal()==IDOK) { m_strProgramFile = m_ldFile.GetPathName(); GetDlgItem(IDC_BSTARTSERVER)->EnableWindow(true); }
UpdateData(false); }
|
bei google oder msdn find ich auch nix..... bin hier echt am verzweifeln :/ Dieser Post wurde am 10.02.2003 um 10:44 Uhr von bIOHAZARd editiert. |