这篇文章给大家介绍利用C++怎么实现在控制台中弹出文件管理对话框,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
在控制台程序中打开文件管理对话框,效果图如下所示:
在需要弹出对话框的地方插入以下代码:
//打开文件管理窗口
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<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("%d\n", x);
return 0;
}
关于利用C++怎么实现在控制台中弹出文件管理对话框就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。