我是靠谱客的博主 安静仙人掌,最近开发中收集的这篇文章主要介绍C++ 控制台弹出文件管理对话框案例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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

//打开文件管理窗口
 TCHAR szBuffer[MAX_PATH] = { 0 };
 OPENFILENAME file = { 0 };
 file.hwndOwner = NULL;
 file.lStructSize = sizeof(file);
 file.lpstrFilter = _T("Excel文件(*.xlsx,*.xls)*.xlsx;*.xlsTxt文件(*.txt)*.txt");//要选择的文件后缀
 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<windows.h>
//不显示控制台
#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("%dn", x);
 return 0;
}

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

最后

以上就是安静仙人掌为你收集整理的C++ 控制台弹出文件管理对话框案例的全部内容,希望文章能够帮你解决C++ 控制台弹出文件管理对话框案例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(112)

评论列表共有 0 条评论

立即
投稿
返回
顶部