一个按钮的单击事件处理函数

11011lyt 2011-11-15 08:29:38
void CVCDDlg::OnOpenButton()
{
char szFilter[]= "
AVI File(*.avi)|(*.avi)|
Movie File(*.mov)|(*.mov)|
Media File(*.mmm)|(*.mmm)|
MPEG File(*.mpeg)|(*.mpeg)|
All File(*.*)|*.*||";

/CFileDialog FileDlg(TRUE,NULL,,NULL,OFN_HIDEREADONLY,szFilter);
if (FileDlg.DoModal()==IDOK)
{
CString PathName=FileDlg.GetPathName();
PathName.MakeUpper();
m_ActiveMovie.SetFileName(PathName);
}

}
以下是调试结果,很不懂,,,请各位指教


--Configuration: VCD - Win32 Debug--------------------
Compiling...
VCDDlg.cpp
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(175) : error C2001: newline in constant
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(176) : error C2146: syntax error : missing ';' before identifier 'AVI'
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(176) : error C2065: 'AVI' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(176) : error C2146: syntax error : missing ';' before identifier 'File'
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(176) : error C2065: 'File' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(176) : error C2059: syntax error : '.'
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(180) : error C2001: newline in constant
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(183) : error C2065: 'FileDlg' : undeclared identifier
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(183) : error C2228: left of '.DoModal' must have class/struct/union type
C:\Program Files\Microsoft Visual Studio\MyProjects\VCD\VCDDlg.cpp(185) : error C2228: left of '.GetPathName' must have class/struct/union type
Error executing cl.exe.

VCD.exe - 10 error(s), 0 warning(s)
...全文
124 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
evil_steve 2011-12-21
  • 打赏
  • 举报
回复
应该转义下字符..
keith_cheung 2011-12-06
  • 打赏
  • 举报
回复
修正:

aDlg.m_ofn.lpstrFilter = _T("*.txt\0*.txt\*.mp3\0*.mp3\0*.*\0*.*\0\0");
keith_cheung 2011-12-06
  • 打赏
  • 举报
回复
修正:

aDlg.m_ofn.lpstrFilter = _T("*.txt\0*.txt\*.mp3\0*.mp3\0*.*\0*.*\0\0");
keith_cheung 2011-12-06
  • 打赏
  • 举报
回复
看我常用的:

CFileDialog aDlg(true);
aDlg.m_ofn.lpstrTitle = _T("打开文件");
// aDlg.m_ofn .lpstrInitialDir = _T("D:\\");
aDlg.m_ofn.lpstrFilter = _T("*.txt\0*.txt\0*.*\0*.*\0\0");
if( aDlg.DoModal() == IDOK )
{
CString SFileName,SPathFileName;
SFileName = aDlg.GetFileName
SPathFileName = aDlg.GetPathName();
}


关键: aDlg.m_ofn.lpstrFilter = _T("*.txt\0*.txt\("*.mp3\0*.mp3\0*.*\0*.*\0\0");
zhou_jlong 2011-11-18
  • 打赏
  • 举报
回复
CFileDialog FileDlg前面的反斜杠"/"是多出来的.
wan0229 2011-11-16
  • 打赏
  • 举报
回复
/CFileDialog FileDlg(TRUE,NULL,,NULL,OFN_HIDEREADONLY,szFilter);
这句前“/”这不能有,
可以用CString来代替那个字符数组。那样赋值是不行的吧

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧