【LibUIDK界面库系列文章】打开和保存文件对话框

本文提供了一个使用Win32 API显示打开和保存文件对话框的示例代码,展示了如何设置过滤器、初始化结构体及调用GetOpenFileName或GetSaveFileName函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



作者:刘树伟


使用Win32方式显示打开和保存文件对话框的代码如下:

 TCHAR szFilters[256] = _T("LibUIDK Settings File(*.ini)|*.ini||"); // 这是MFC风格的filter,win32用\0代替|,所以下面要转一下。
 LPTSTR pch = szFilters; // modify the buffer in place
 // MFC delimits with '|' not '\0'
 while ((pch = _tcschr(pch, '|')) != NULL)
  *pch++ = '\0';
 // do not call ReleaseBuffer() since the string contains '\0' characters

 TCHAR szFile[256] = {0};
 TCHAR szFileTitle[256] = {0};
 TCHAR szTitle[256] = {0};
 TCHAR szDefExt[256] = _T("ini");
 OPENFILENAME Ofn;
 memset(&Ofn, 0, sizeof(OPENFILENAME)); // initialize structure to 0/NULL
 Ofn.lStructSize = sizeof(OPENFILENAME);
 Ofn.lpstrFile= szFile;
 Ofn.nMaxFile = 256;
 Ofn.lpstrDefExt = szDefExt;
 Ofn.lpstrFileTitle = szFileTitle;
 Ofn.nMaxFileTitle = 256;
 Ofn.hwndOwner = NULL;
 Ofn.lpstrFilter = szFilters;
 Ofn.lpstrInitialDir = (LPTSTR)NULL;
 Ofn.Flags |= OFN_OVERWRITEPROMPT | OFN_ENABLEHOOK | OFN_EXPLORER;
 Ofn.lpstrTitle = szTitle;

 BOOL bRet = GetOpenFileName(&Ofn); // 如果是保存文件,用GetSaveFileName

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值