Консультация № 110186
19.11.2007, 19:49
0.00 руб.
0 2 2
Как в visual c++ 6 сделать аналог opendialog и savedialog билдера Заранее спасибо

Обсуждение

Неизвестный
19.11.2007, 21:27
общий
это ответ
Здравствуйте, Никифоров Дима!
Cуществует клас CFileDialog!
описание можете найти в MSDN!
вот пример вызовава!
Удачи!

Приложение:
void CChildFrame::OnFileOpen() { // szFilters is a text string that includes two file name filters: // "*.my" for "MyType Files" and "*.*‘ for "All Files." char CChildFrame::szFilters[]= "MyType Files (*.my)|*.my|All Files (*.*)|*.*||"; // Create an Open dialog; the default file name extension is ".my". CFileDialog fileDlg (TRUE, "my", "*.my", OFN_FILEMUSTEXIST| OFN_HIDEREADONLY, szFilters, this); // Display the file dialog. When user clicks OK, fileDlg.DoModal() // returns IDOK. if( fileDlg.DoModal ()==IDOK ) { CString pathName = fileDlg.GetPathName(); // Implement opening and reading file in here. ... //Change the window‘s title to the opened file‘s title. CString fileName = fileDlg.GetFileTitle (); SetWindowText(fileName); }}
Неизвестный
19.11.2007, 21:34
общий
это ответ
Здравствуйте, Никифоров Дима!
Можете использовать соответствующие API функции GetOpenFileName и GetSaveFileName
http://www.firststeps.ru/mfc/winapi/commdia/r.php?52
http://www.firststeps.ru/mfc/winapi/commdia/r.php?53

Приложение:
void Open_Save_File(){OPENFILENAME ofn;char szFile[260];ZeroMemory(&ofn, sizeof(ofn));ofn.lStructSize = sizeof(ofn);ofn.lpstrFile = szFile;ofn.lpstrFile[0] = ‘\0‘;ofn.nMaxFile = sizeof(szFile);ofn.lpstrFilter = "All\0*.*\0";ofn.lpstrFileTitle = NULL;ofn.nMaxFileTitle = 0;ofn.lpstrInitialDir = NULL;ofn.Flags =OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST;GetOpenFileName(&ofn);char szFileTitle[1024];ZeroMemory(&ofn, sizeof(ofn));ofn.lStructSize = sizeof(ofn);ofn.lpstrFile = szFile;ofn.nMaxFile = sizeof(szFile);ofn.lpstrFilter = "Text\0*.txt\0";ofn.lpstrFileTitle = szFileTitle;ofn.nMaxFileTitle = sizeof(szFileTitle);ofn.lpstrInitialDir = NULL;ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_OVERWRITEPROMPT;GetSaveFileName(&ofn);return;}
Форма ответа