在控制台程序中打开文件管理对话框,效果图如下所示:

在需要弹出对话框的地方插入以下代码:

//打开文件管理窗口
 TCHAR szBuffer[MAX_PATH] = { 0 };
 OPENFILENAME file = { 0 };
 file.hwndOwner = NULL;
 file.lStructSize = sizeof(file);
 file.lpstrFilter = _T("Excel文件(*.xlsx,*.xls)\0*.xlsx;*.xls\0Txt文件(*.txt)\0*.txt\0");//要选择的文件后缀
 file.lpstrInitialDir = _T("C:\\");//默认的文件路径 
 file.lpstrFile = szBuffer;//存放文件的缓冲区
 file.nMaxFile = sizeof(szBuffer) / sizeof(*szBuffer);
 file.nFilterIndex = 0;
 file.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_EXPLORER;//标志如果是多选要加上OFN_ALLOWMULTISELECT
 BOOL bSel = GetOpenFileName(&file);

补充:c如何弹出保存路径/保存文件对话框

我就废话不多说了,大家还是直接看代码吧~

//保存路径
TCHAR szBuffer[MAX_PATH] = {0}; 
 BROWSEINFO bi; 
 ZeroMemory(&bi,sizeof(BROWSEINFO)); 
 bi.hwndOwner = NULL; 
 bi.pszDisplayName = szBuffer; 
 bi.lpszTitle = _T("选择保存文件路径:"); 
 bi.ulFlags = BIF_RETURNFSANCESTORS;
 LPITEMIDLIST idl = SHBrowseForFolder(&bi); 
 if (NULL == idl) 
 { 
  return 0; 
 } 
 SHGetPathFromIDList(idl,szBuffer);
 
//保存对话框;
 TCHAR szFilters[]= _T("*.csv");
 CFileDialog dlg(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilters);
 if(IDOK==dlg.DoModal())
 {
 //现在的当前路径变成了所打开文件时的路径,故只需要拿到文件名即可对文件进行操作;
 TCHAR curPath[MAX_PATH];
 GetCurrentDirectory(MAX_PATH,curPath); //可以拿到当前文件夹的路径,此时curPath就是当前文件所处的路径,变成了当前路径;
 }
//保存文件

补充:C++控制台程序弹出消息框

#include "stdafx.h"
#include
//不显示控制台
#pragma comment( linker, "/subsystem:windows /entry:mainCRTStartup" )
int main()
{
 int x=::MessageBox(NULL, TEXT("将在20秒后关机,确定执行吗?"), TEXT("操作提示"), 1);
 if (x==1)
 {
 //确认关机
 system("shutdown /s /t 20");
 }
 printf("%d\n", x);
 return 0;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持乐虎体育。如有错误或未考虑完全的地方,望不吝赐教。

标签:

C++ 控制台弹出文件管理对话框案例的更多相关文章

  1. C/C++内存对齐详解

    1、什么是内存对齐 还是用一个例子带出这个问题,看下面的小程序,理论上,32位系统下,int占4byte,c......

  2. C++ 入门篇

    C++基础入门 1 C++初识 1.1 第一个C++程序 编写一个C++程序总共分为4个步骤 创建项目 ......

  3. C++ 控制台弹出文件管理对话框案例

    在控制台程序中打开文件管理对话框,效果图如下所示:在需要弹出对话框的地方插入以下代码://打开文件管理窗口TCHAR......

随机推荐

  1. java中ExecutorService创建方法总结

    在对线程进行控制时,Executor虽然能够对其进行管理,但是缺少终止的功能,所以我们要用到Executor的进阶方......

  2. PHP设计模式之命令模式示例详解

    前言命令模式,也称为动作或者事务模式,很多教材会用饭馆来举例。作为顾客的我们是命令的下达者,服务员是这个命令的接收者......

  3. python常用模块的常用方法介绍 os、math、random、time、datetime、国内常见镜像

    导入模块的一些语法from random import randint#2、from 模块名 import 函数名,......

  4. 手把手教你搭建SSH框架(Eclipse版)

    原文来自公众号【C you again】,若需下载完整源码,请在公众号后台回复“ssh”。本期文章详细讲解了SSH(......

  5. css3实现背景渐变

    #grad {background: -webkit-linear-gradient(left,rgba(255,0......

  6. 在JavaScript中查找字符串中最长单词的三种方法(推荐)

    本文基于Free Code Camp基本算法脚本“查找字符串中最长的单词”。在此算法中,我们要查看每个单词并计算每个......

  7. javascript 数组(list)添加/删除的实现

    javascript 数组Array(list)添加/删除unshift:将参数添加到原数组开头,并返回数组的长度p......

  8. c#添加Newtonsoft.Json包的操作

    C#使用json点击工具 - NuGet包管理器 - 程序包管理控制台,输入下面命令:Install-Package......

  9. Perl 使用 Net::FTP 从 FTP 上下载文件

    use Net::FTP;$ftp = Net::FTP->new("ftp.cpan.org&qu......

  10. MySQL全面瓦解16:存储过程相关

    概述大多数SQL语句都是针对一个或多个表的单条语句。但并非所有业务都这么简单,经常会有复杂的操作需要多条语句才能完成......