1. 程式人生 > >VC++選擇檔案對話方塊實現

VC++選擇檔案對話方塊實現

	char szFilter[] = {"All Files(*.*)|*.*||"};
	CFileDialog dlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL);
	
	if(dlg.DoModal() == IDOK)
	{
		m_strFilePath = dlg.GetPathName();
		//m_strFileName = dlg.GetFileName();
		m_strFileName = dlg.GetFileTitle();
		lpszFileName = (LPCSTR)m_strFilePath;
		strDir[0] = m_strFilePath;
	}
	else
	{
	}
	
CFileDialog(BOOL bOpenFileDialog,
            LPCTSTR lpszDefExt = NULL,
            LPCTSTR lpszFileName = NULL,
            DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
            LPCTSTR lpszFilter = NULL,
            CWnd* pParentWnd = NULL
           );

引數:
bOpenFileDialg如果為TRUE, 則建立檔案開啟對話方塊;如果為FALSE,則構造一個File Save As(另存為)對話方塊。
lpszDefExt預設副檔名,如果使用者在檔名編輯框中不包含副檔名,則lpszDefExt定義的副檔名自動加到檔名後。如果為NULL,則不新增副檔名。
lpszFileName初始顯示於檔名編輯框中的檔名,如果為NULL,則不顯示初始檔名。
dwFlags一個或多個標誌的組合,使你可定製對話方塊。要了解這些標誌的描述,可參閱OPENFILENAME結構。如果你改變m_ofn.Flags結構成員,在改變中用OR操作保持預設行為完整。
lpszFilter一列字串對,指定可以應用到檔案的過濾器。如果指定過濾器,僅被選擇的檔案顯示於檔案列表框中。請參閱說明部分,瞭解如何使用過濾器。
pParentWnd指向檔案對話方塊物件的父視窗或擁有者視窗。

常用的幾個函式:

至於if(dlg.DoModal() == IDOK)後面加一個else是因為我發現沒有的話經常出錯