修改代码,立即给分(关于文件打开)

ibug 2002-04-17 10:04:02
CString filename;
//打开一个打开文件的通用对话框用来选择AVI文件
CFileDialog dlg(TRUE,"avi",NULL,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"AVI文件(*.avi)|*.avi||");
if(dlg.DoModal()==IDOK)
{
filename=dlg.GetPathName(); //得到文件名
//判断是否已经存在一个MCIWnd窗口,如果有,将其关闭
if(m_hwndMCI!=NULL)
MCIWndDestroy(m_hwndMCI);
//建立一个MCIWnd窗口
m_hwndMCI=MCIWndCreate(m_hWnd,AfxGetInstanceHandle(),0,filename);

1.希望能改成直接打开,而不是用dlg(10分)
2.直接打开后如何得到原来MCIWndCreate函数里是filename(25分)
3.avi文件在应用程序的同一个目录下,如何使用相对目录(15分)
希望高手踊跃发言:)
...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ibug 2002-04-17
  • 打赏
  • 举报
回复
我是要通过按一个菜单项来打开一个Avi
Avi文件打开我是知道的(不用dlg)
但是MCIWndCreate里的参数filename不知道怎么得到,直接写"d:\\ani.avi"他说找不到
how can i do
还有就是谁能把用相对路径打开文件写的详细点
比如我要打开文件avi
CFile file;
file.Open("d:\\ani.avi",CFile::modeRead);
这样写不知道对不对
如何改成用相对路径
shaohua 2002-04-17
  • 打赏
  • 举报
回复
我不太明白你的问题耶。啥是直接打开?就是不用弹出选择文件对话框,
而直接打开一个文件吗?如果这样,那很好办,你直接就用:
filename="myfile.avi"; //指定文件名
//判断是否已经存在一个MCIWnd窗口,如果有,将其关闭
if(m_hwndMCI!=NULL)
MCIWndDestroy(m_hwndMCI);
//建立一个MCIWnd窗口
m_hwndMCI=MCIWndCreate(m_hWnd,AfxGetInstanceHandle(),0,filename);
就可以啦。
至于使用相对目录,就像我上面的做法一样,直接指定文件名,而不用带上路
径,如下:
filename="c:\\music\\myfile.avi";
就是绝对路径。如果是弹出文件选择对话框,希望其默认的目录是你的应用程序
的当前路径的话,也很好办,你可以用API函数获得当前路径或应用程序的路径。
且CFileDlg有个参数指定缺省路径的。
如果你要记录这次打开的文件的路径和文件名,可以把他们些到注册表中。

VC_LOADING 2002-04-17
  • 打赏
  • 举报
回复
1.用CFileFind来查目录下的avi文件
2.用全局变量保存打开文件名,下次打开就可以知道了
3.和第一项一样,filename.Format(".\\%s",当前找到的文件);

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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