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

来源:互联网 发布:云计算对教育的影响 编辑:程序博客网 时间:2024/04/29 18:35


作者:刘树伟


使用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

阅读全文
0 0
原创粉丝点击