当用户想选择打开以前保存文件时就需要使用到选择文件对话框其实在WindowsAPI里已经有这样完美对话只需要简单就可以使用了而不需要写大堆其它代码下面就来演示下如何使用文件选择对话框
GetOpenFileName声明如下:
WINCOMMDLGAPI BOOL APIENTRY GetOpenFileNameA(LPOPENFILENAMEA);
WINCOMMDLGAPI BOOL APIENTRY GetOpenFileNameW(LPOPENFILENAMEW);
#def UNICODE
# GetOpenFileName GetOpenFileNameW
#
# GetOpenFileName GetOpenFileNameA
#end // !UNICODE
LPOPENFILENAMEA是指向文件选择对话框结构
例子如下:
#001 //获取用户选择文件名称
#002 //蔡军生 2007/12/21 qq:9073204 深圳
#003 void TestGetOpenFileName(void)
#004 {
#005 //
#006 OPENFILENAME ofn; // 公共对话框结构
#007 TCHAR szFile[MAX_PATH]; // 保存获取文件名称缓冲区
#008
#009 // 化选择文件对话框
#010 ZeroMemory(&ofn, (ofn));
#011 ofn.lStructSize = (ofn);
#012 ofn.hwndOwner = m_hWnd;
#013 ofn.lpstrFile = szFile;
#014 //
#015 //
#016 ofn.lpstrFile[0] = _T('\0');
#017 ofn.nMaxFile = (szFile);
#018 ofn.lpstrFilter = _T("All\0*.*\0Text\0*.TXT\0");
#019 ofn.nFilterIndex = 1;
#020 ofn.lpstrFileTitle = NULL;
#021 ofn.nMaxFileTitle = 0;
#022 ofn.lpstrInitialDir = NULL;
#023 ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
#024
#025 // 显示打开选择文件对话框
#026 ( GetOpenFileName(&ofn) )
#027 {
#028 //显示选择文件
#029 OutputDebugString(szFile);
#030 OutputDebugString(_T("\r\n"));
#031
#032 }
#033 }
最新评论