正确的使用方法如下:
CString m_Spath
CFileDialog myDlg(FALSE, "",NULL,OFN_OVERWRITEPROMPT|OFN_HIDEREADONLY,"|||", this);
if(myDlgDoModal()==IDOK)
m_Spath=myDlgGetPathName();//得到全路径
第一个参数设置为TRUE是打开文件对话框,FALSE是保存文件对话框。
第二个参数是默认的扩展名,你可以换成你自己的扩展名或设置 为NULL和 0
的三个参数是默认的文件名,你也可以。。。。。
第四个参数是打开的方式,具体情况你的查帮助或设置为NULL
第五个参数是可选的扩展名,注意字符串的末尾必须是 and and
第六个是父窗口的指针,一般设置为NULL或 0
就这么多了,呵呵,其实帮助里面都有。
//////////////////////////////
再给你段api创建打开 2000风格
//////////////////////////////////
char szFile[MAX_PATH] = {0}; // buffer for file name
OPENFILENAME ofn;
memset(&ofn, 0, sizeof(OPENFILENAME));
ofnlStructSize = sizeof(OPENFILENAME);
ofnhwndOwner = this->m_hWnd;
ofnlpstrFile = szFile;
ofnnMaxFile = MAX_PATH;
ofnlpstrFilter = TEXT("Backup Files (bak)\0bak\0All ()\0\0");
ofnlpstrDefExt = TEXT("bak");
ofnlpstrTitle = TEXT("打开文件");
ofnnFilterIndex = 1;
ofnlpstrFileTitle = NULL;
ofnnMaxFileTitle = 0;
ofnlpstrInitialDir = NULL;
if(GetSaveFileName(&ofn)) ///保存对话框
{
// Display the current data file name
//SetDlgItemText(IDC_EDIT_FILENAME, szFile);
//szFile就是取得了的文件名。
}
if( GetOpenFileName(&ofn)){} ////打开对话框
OPENFILENAME结构包含了GetOpenFileName和GetSaveFileName函数用来初始化打开或另存为对话框的信息。在用户关闭对话框后,系统返回关于用户的选择信息到这个结构中。
typedef struct tagOFN {
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCTSTR lpstrFilter;
LPTSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPTSTR lpstrFile;
DWORD nMaxFile;
LPTSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCTSTR lpstrInitialDir;
LPCTSTR lpstrTitle;
DWORD Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCTSTR lpstrDefExt;
LPARAM lCustData;
LPOFNHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
#if (_WIN32_WINNT >= 0x0500)
void pvReserved;
DWORD dwReserved;
DWORD FlagsEx;
#endif // (_WIN32_WINNT >= 0x0500)
} OPENFILENAME, LPOPENFILENAME;
DataSet
可以直接读取XML文件
DataSet
ds=
new
DataSet();
dsReadXml(xml路径,XmlReadModeAuto);
ds中的DataTable中就有你要的数据;
这有可能跟你打开文件后的代码有关 , 你在打开后 这个文件的属性就变为了只读属性,你如果再次通过 OpenFileDialog选择这个文件进行 *** 作 就会导致 造成 尝试读取或写入受保护的内存 试试选择其它文件试下
Dim name As String = ""
Dim age As Integer
name = InputBox("请输入姓名")
age = InputBox("请输入年龄")
FileOpen(1, "d:\信息txt", OpenModeAppend)
WriteLine(1, name, age)
FileClose(1)
FileOpen(1, "d:\信息txt", OpenModeAppend)
WriteLine(1, name, age)
FileClose(1)
Dim h As String
Dim j As String
Dim f As String
f = ""
h = ""
j = ""
While EOF(1) = False
f = LineInput(1) & vbCrLf & f
End While
FileClose(1)
MsgBox("姓名" & " " & "年龄" & vbCrLf & f)
以上就是关于VS2005 C++ 读取多文件对话框, 谢了先全部的内容,包括:VS2005 C++ 读取多文件对话框, 谢了先、用VS2005编写的C#程序要读取某个XMl文件中的数据,为什么读不出来求高手。。。。。。、Vs2010 C#调用openfiledialog,第一次可以正常读取文件,以后每次都可以打开对话等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)