CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

在vc里怎样弹出打开方式对话框

楼主huangjianglanff()2005-02-19 16:45:23 在 VC/MFC / 基础类 提问

如题,我想打开某一个文件,但是该文件的类型不确定,所以我想弹出windows自己的对话框让用户自己选择用什么程序打开该文件。不知我的表达大家清不清楚,谢谢 问题点数:20、回复次数:12Top

1 楼fanqing(火影忍者+28%(准备学习进程/线程))回复于 2005-02-19 17:05:14 得分 0

CFileDialogTop

2 楼huangjianglanff()回复于 2005-02-19 17:10:45 得分 0

CFileDialog  
  是用户选择打开文件吧  
  我是要用户选择用什么程序打开文件Top

3 楼huangjianglanff()回复于 2005-02-19 17:12:32 得分 0

类似于下面的问题:  
          在   windows   下,如果我们双击一个文件时,如果相应的文件链接存在,windows   会调用相应的程序来打开该文件,如果找不到相应文件,windows   会显示出一个“打开方式”的服务器程序列表对话框供选择,现在问题是:    
          我想在程序中调用这个“打开方式”对话框,怎样实现?    
  Top

4 楼krh2001(边城浪子)回复于 2005-02-19 18:00:40 得分 20

ShellExecute()Top

5 楼webfpc(人人)回复于 2005-02-19 18:43:39 得分 0

等待,我是初学者Top

6 楼huangjianglanff()回复于 2005-02-23 11:30:47 得分 0

ShellExecute()  
   
  能说得具体点吗?Top

7 楼handwolf(青松崖)回复于 2005-02-23 12:09:58 得分 0

分享给你一个函数,现在很少有人用这个了,   但是很好,是api。  
  //select   file   dialog  
  BOOL   SelBMPFile(TCHAR*   lpstrFilename)   //   open   an   file   dialog   to   sel   a   bmp   file  
  {  
  OPENFILENAME   ofn;    
  //设定文件的名称储存空间    
  //TCHAR   lpstrFilename[MAX_PATH]   =   "";    
  //清空OPENFILENAME    
  ZeroMemory(&ofn,   sizeof(ofn));    
  ofn.lStructSize   =   sizeof(OPENFILENAME);//lStructSize的返回值是是76    
  //设定父窗口    
  ofn.hwndOwner   =   NULL;    
  ///设定打开文件的类型    
  ofn.lpstrFilter   =   "";    
  ofn.nMaxFile   =   MAX_PATH;    
  ofn.lpstrFile=lpstrFilename;    
  if   (!GetOpenFileName(&ofn))    
  return   FALSE;    
   
  return   TRUE;  
  }  
   
  调用方法:  
  TCHAR   lpstrFilename[MAX_PATH]   =   "";    
  BOOL   rlt   =   SelBMPFile(lpstrFilename);    
   
  如果rlt   为TRUE,则文件名(路径)在参数lpstrFilename中。Top

8 楼handwolf(青松崖)回复于 2005-02-23 12:10:53 得分 0

函数名称你可以改一下,我以前是专门为了选bmp文件的Top

9 楼krh2001(边城浪子)回复于 2005-02-24 21:54:07 得分 0

ShellExecute(NULL,   NULL,   "rundll32.exe","shell32.dll,OpenAs_RunDLL   \"e:\\aaa.abc\"",   NULL,   SW_SHOW);  
   
   
  这样执行ShellExecute,将弹出文件e:\aaa.abc的打开方式对话。很简单吧   :)Top

10 楼krh2001(边城浪子)回复于 2005-02-24 21:57:40 得分 0

注意OpenAs_RunDLL与后面部分用空格分开,这里显示的不清楚。文件名最好象上面一样用引号引起来,这样可以处理带空格的路径Top

11 楼jiangsheng(蒋晟.Net[MVP])回复于 2005-02-25 07:22:13 得分 0

http://www.codeguru.com/forum/showthread.php?p=761654Top

12 楼huangjianglanff()回复于 2005-03-03 16:38:02 得分 0

我试了krh2001(边城浪子)   的方法,不用加引号可以,但是加引号不行,不知何故  
  但总算是解决了,谢谢所有得人Top

相关问题

  • 如何弹出“打开对话框”?
  • 弹出对话框
  • 对话框弹出
  • 弹出对话框
  • ........弹出对话框
  • 怎样才能弹出"打开"对话框?
  • 如何实现“打开方式”所弹出的对话框?
  • 不用commondialog控件如何弹出打开对话框?
  • 如何防止vc程序弹出"确定" "取消"对话框
  • 请问:VC中,怎样做到弹出进度条对话框,进度条完了自动关闭对话框?

关键词

  • 文件
  • 用户
  • 选择
  • null
  • lpstrfilename
  • ofn
  • 对话框
  • 打开
  • 弹出
  • openfilename

得分解答快速导航

  • 帖主:huangjianglanff
  • krh2001

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo