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++ 控制台弹出文件管理对话框案例 的全部内容, 来源链接: utcz.com/p/245831.html

回到顶部