当前位置: 首页 > wzjs >正文

网站开发课程的心得营销宣传图片

网站开发课程的心得,营销宣传图片,幸福人寿保险公司官方网站,网站设计素材网站在MFC项目中使用CFileDialog打开文件时,一般的使用场景是选择一个文件,今天我们做一个选择多个文件的实验,运行环境是VS2022。 实验目标:在基于对话框的MFC项目中,通过调用CFileDialog类对象,将选择…

       在MFC项目中使用CFileDialog打开文件时,一般的使用场景是选择一个文件,今天我们做一个选择多个文件的实验,运行环境是VS2022。
       实验目标:在基于对话框的MFC项目中,通过调用CFileDialog类对象,将选择到的多个文件的路径及文件名保存到一个CString数组中,并通过显示控件逐一显示出来。
       实验具体步骤如下:
一、建立一个基于对话框的MFC项目
       打开VS2022->创建新项目->MFC应用->下一步->项目名称填写:testMultiFile->创建->应用程序类型选择:基于对话框->完成(其余项目均按缺省)。
二、设置对话框界面
       选择对话框界面,将对话框上自动生成的控件删去。接着:
       1. 拖入一个静态文本框置于对话框的左上部,将描述文字改为“选择多个文件实验”。
       2. 拖入一个按钮控件,放到对话框的右上方,描述文字改为“开始实验”,ID改为IDC_TEST;后边我们将在给这个按钮添加的处理程序中完成选择、提取信息、存储文件路径及文件名等工作。
       3. 再拖入两个按钮控件,并列放到“开始试验”按钮的下方,将描述文字分别改为“▲”和“▼”,并将ID分别改为IDC_UP与IDC_DOWN;这两个按钮的作用是在显示时移动显示的内容,具体实现过程在为它们添加的处理程序中进行。
       4. 拖入一个静态文本框,放在对话框的右下方,将描述文字改为“文件路径及文件名”。
       5. 拖入一个文本编辑框,放到“文件路径及文件名”的右侧,我们将使用它显示选择的内容,为此,给他添加一个变量m_Path。(添加步骤:右键文本编辑框->添加变量->在名称中写入m_Path->完成)
三、在testMultiFileDlg.h中声明几个变量
       这几个变量以public方式声明,具体名称、作用见代码后边的注释。

	#define fileNameNum 1024 //可以选择文件名(含路径,下同)个数的最大值const DWORD fileNameMaxLen = MAX_PATH; //单个文件名最大长度(字符数)const DWORD bufferSize = (fileNameNum * fileNameMaxLen) + 1;//定义存储所有被选择文件名的缓冲区大小CString fileNameStr[fileNameNum];// 定义接收解析后文件名的数组int fNumber = 0; //用于记录一共选择了多少个文件名int showNum = 0; //用于记录要显示的文件名序号

四、添加处理程序
      1. 给“开始实验”按钮添加处理程序
      右键“开始实验” ->添加事件处理程序 ->类列表选择:CtestMutltiFileDlg,其余按缺省 ->确定;这样,在testMultiFileDlg.cpp中,会增加一个函数void CtestMultiFileDlg:: OnBnClickedTest(),在这个函数的TODO:行下面,我们要添加一些代码。这些代码的功能是利用CFileDialog类生成的对话框选择多个文件,并通过对CFileDialog对象中m_ofn结构体属性的设置,使其能够容纳多个文件的路径及文件名;最后将获得的文件路径及文件名保存到我们定义的数组中。具体代码如下:

  	// TODO: 在此添加控件通知处理程序代码CFileDialog fileDlg(TRUE, NULL, NULL, OFN_HIDEREADONLY | //以打开方式定义CFileDialog对象OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT | OFN_EXPLORER, _T("文件(*.*)|*.*||"));TCHAR* fileNamesBuffer = new TCHAR[bufferSize]; //将文件名缓冲区开辟在堆区fileNamesBuffer[0] = NULL;//初始化缓冲区,将缓冲区第一个和最后一个字节置0fileNamesBuffer[bufferSize - 1] = NULL; fileDlg.m_ofn.lpstrFile = fileNamesBuffer; //lpstrFile指向文件名缓冲区的指针fileDlg.m_ofn.nMaxFile = bufferSize; //指定lpstrFile缓冲的大小,以TCHARs为单位/* m_ofn是一个OPENFILENAME型的结构体,它包含了文件对话框的和各种,对于打开的那个文件可以使用其默认值,但对于打开多个文件时,要重新设置它的储存空间 */if (IDOK == fileDlg.DoModal()) //运行打开文件对话框{CString fName; //临时变量POSITION pos = fileDlg.GetStartPosition();//POSITION是一个数据类型,它代表了一个抽象的迭代位置,实际上是结构体__POSITION的指针//GetStartPosition()获得第一个文件路径及文件名的位置while (pos != NULL){fName = fileDlg.GetNextPathName(pos);//得到下一个文件位置,同时返回当前文件名(含路径)fileNameStr[fNumber] = fName;// 取得文件名fNumber++; //累加选择文件的个数}}delete[] fileNamesBuffer;//释放在堆区内存m_Path.SetWindowTextW(fileNameStr[0]); //把选择的第一个文件名做缺省显示

    2. 给“▲”按钮添加处理程序
       添加步骤同上,添加的程序名为CtestMultiFileDlg::OnBnClickedUp(),这个函数的作用简单,就是按动这个按钮时,按倒序依次显示旭泽的文件名。具体代码也是要加到TODO行下面:

 	// TODO: 在此添加控件通知处理程序代码showNum--;if (showNum <0)showNum = 0;m_Path.SetWindowText(fileNameStr[showNum]);

     3. 给“▼”按钮添加处理程序
        添加的程序名为CtestMultiFileDlg::OnBnClickedUp(),它的作用是按正序显示选择的文件名。代码如下:

	// TODO: 在此添加控件通知处理程序代码showNum++;if (showNum == fNumber)showNum = fNumber-1;m_Path.SetWindowText(fileNameStr[showNum]);

五、至此,这个实验就算结束,我们看一下运行效果:

http://www.dtcms.com/wzjs/140208.html

相关文章:

  • 南昌网站建设公司东莞疫情最新通告
  • 个人养老保险查询个人账户查询北京官方seo搜索引擎优化推荐
  • 四川建设机械网站有必要买优化大师会员吗
  • 江都区建设局的政府网站seo网络优化招聘
  • 固定ip做网站和域名区别交换链接的例子
  • 做web网站原型设计seo查询外链
  • 如何做百度收录的网站sem是什么工作
  • 网站制作洋网络百度视频广告怎么投放
  • 合肥建设集团信息网站广东seo点击排名软件哪家好
  • 网站运营与管理宁波seo关键词培训
  • 外贸网站怎么做seo优化东莞全网推广
  • 网站专题优化爱采购seo
  • 一个人做b2b2c网站制作app软件平台
  • 天津艺匠做网站太原搜索排名提升
  • dede能建立手机网站吗台州百度推广优化
  • 上海网站开发技术最好公司电话制作一个网站的全过程
  • 图片设计网站推荐互联网营销案例分析
  • 企业内部网站模板网站的优化公司
  • 自助手机建站网站维护费用一般多少钱
  • 轻松筹 的网站价格做网站建设公司企业网站
  • 洮南市城乡和住房建设局网站宁波优化网站厂家
  • 做网站的价钱关键词筛选
  • 济南做html5网站建设湖南专业seo优化
  • 泰州seo网站推广贴吧高级搜索
  • 桂林什么公司做网站推广好百度快照优化培训班
  • 风向 网站免费开发软件制作平台
  • 购物网站分为几个模块北京百度seo
  • html网站模板 淘宝商城国产长尾关键词拘挖掘
  • 新疆美食网站建设前的市场分析网站开发详细流程
  • 网站用什么空间好营销推广模式有哪些