Windows API一日一練(93)GetSaveFileName函數

Post date: 2012/3/27 上午 07:54:01

分類: Direct3D2007-12-25 21:25 3469人閱讀 評論(2) 收藏 舉報

前面介紹了怎麼樣打開選擇文件讀取的對話框,當你設計的軟件需要讓用戶選擇保存時,就需要讓用戶去選擇自己合適的文件名稱來保存。那麼就需要使用到保存文件對話框,也就是API函數GetSaveFileName。下面就來演示怎麼樣使用這個API函數。

函數GetSaveFileName聲明如下:

WINCOMMDLGAPI BOOL APIENTRY GetSaveFileNameA(LPOPENFILENAMEA);

WINCOMMDLGAPI BOOL APIENTRY GetSaveFileNameW(LPOPENFILENAMEW);

#ifdef UNICODE

#define GetSaveFileName GetSaveFileNameW

#else

#define GetSaveFileName GetSaveFileNameA

#endif // !UNICODE

調用函數的例子如下:

#001 //獲取用戶選擇保存的文件名稱。

#002 //蔡軍生 2007/12/25 QQ:9073204 深圳

#003 void TestGetSaveFileName(void)

#004 {

#005 //

#006 OPENFILENAME ofn; // 公共對話框結構。

#007 TCHAR szFile[MAX_PATH]; // 保存獲取文件名稱的緩衝區。

#008

#009 // 初始化選擇文件對話框。

#010 ZeroMemory(&ofn, sizeof(ofn));

#011 ofn.lStructSize = sizeof(ofn);

#012 ofn.hwndOwner = m_hWnd;

#013 ofn.lpstrFile = szFile;

#014

#015 //

#016 ofn.lpstrFile[0] = _T('/0');

#017 ofn.nMaxFile = sizeof(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_SHOWHELP | OFN_OVERWRITEPROMPT;

#024

#025 // 顯示打開選擇文件對話框。

#026 if ( GetSaveFileName(&ofn) )

#027 {

#028 //顯示選擇的文件。

#029 OutputDebugString(szFile);

#030 OutputDebugString(_T("/r/n"));

#031 }

#032 }