C++ 关于实现OpenFileDialog对话框,请参见;System.IO.FileStream“;显示在结果编辑文本框中,而不是文件名和路径上。怎么用?
在VisualStudio中基于对话框的MFc应用程序中实现openFileDialog函数时,我在edittext框中得到的结果是“System.IO.FileStream” 我已经在这个问题中包含了代码。在DoDataExchange函数中,IDC_EDIT1是编辑文本框的IDC++ 关于实现OpenFileDialog对话框,请参见;System.IO.FileStream“;显示在结果编辑文本框中,而不是文件名和路径上。怎么用?,c++,mfc,C++,Mfc,在VisualStudio中基于对话框的MFc应用程序中实现openFileDialog函数时,我在edittext框中得到的结果是“System.IO.FileStream” 我已经在这个问题中包含了代码。在DoDataExchange函数中,IDC_EDIT1是编辑文本框的ID void CMFCApplication6Dlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_T
void CMFCApplication6Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, path);
}
void CMFCApplication6Dlg::OnBnClickedBrowse()
{
System::IO::Stream^ myStream;
System::Windows::Forms::OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
openFileDialog1->InitialDirectory = "c:\\";
openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1->FilterIndex = 2;
openFileDialog1->RestoreDirectory = true;
UpdateData(true);
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
if ((myStream = openFileDialog1->OpenFile()) != nullptr)
{
path = myStream->ToString();
UpdateData(false);
myStream->Close();
}
}
}
执行此代码时,会打开文件打开对话框,选择文件时,“System.IO.FileStream”将显示在编辑文本框中
void CMFCApplication6Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, path);
}
void CMFCApplication6Dlg::OnBnClickedBrowse()
{
System::IO::Stream^ myStream;
System::Windows::Forms::OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
openFileDialog1->InitialDirectory = "c:\\";
openFileDialog1->Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*";
openFileDialog1->FilterIndex = 2;
openFileDialog1->RestoreDirectory = true;
UpdateData(true);
if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
{
if ((myStream = openFileDialog1->OpenFile()) != nullptr)
{
path = myStream->ToString();
UpdateData(false);
myStream->Close();
}
}
}
我相信你的问题在于声明
path=myStream->ToString()代码>
函数返回“表示当前对象的字符串”。这是您在尝试显示路径时看到的字符串(一个描述对象类型的字符串,因此是System.IO.FileStream)
编辑:根据要求,我相信可以使用FileDialog.FileName
属性检索路径。所以
openFileDialog1->FileName
可用于访问路径。我相信您的问题在于该语句
path=myStream->ToString()代码>
函数返回“表示当前对象的字符串”。这是您在尝试显示路径时看到的字符串(一个描述对象类型的字符串,因此是System.IO.FileStream)
编辑:根据要求,我相信可以使用FileDialog.FileName
属性检索路径。所以
openFileDialog1->FileName
可用于访问路径。我相信您的问题在于该语句
path=myStream->ToString()代码>
函数返回“表示当前对象的字符串”。这是您在尝试显示路径时看到的字符串(一个描述对象类型的字符串,因此是System.IO.FileStream)
编辑:根据要求,我相信可以使用FileDialog.FileName
属性检索路径。所以
openFileDialog1->FileName
可用于访问路径。我相信您的问题在于该语句
path=myStream->ToString()代码>
函数返回“表示当前对象的字符串”。这是您在尝试显示路径时看到的字符串(一个描述对象类型的字符串,因此是System.IO.FileStream)
编辑:根据要求,我相信可以使用FileDialog.FileName
属性检索路径。所以
openFileDialog1->FileName
可用于访问路径。那么如何从流对象中检索文件名和路径。建议我是否需要对此代码进行任何重大修改。编辑以反映特定建议然后如何从流对象检索文件名和路径。建议我是否需要对此代码进行任何重大修改。编辑以反映特定建议然后如何从流对象检索文件名和路径。建议我是否需要对此代码进行任何重大修改。编辑以反映特定建议然后如何从流对象检索文件名和路径。建议我是否需要对此代码进行任何重大修改。编辑以反映特定建议