「ファイルの選択」ダイアログ・ボックス、「ファイルの保存」ダイアログ・ボックス、「フォルダの選択」ダイアログ・ボックス


「ファイルの選択」ダイアログ・ボックス
//           
	CString lv_strFilterAll = _T("    (*.*)|*.*||");
	CString lv_strFilterJPG = _T("JPG  (*.JPG)|*.JPG|");
	CString lv_strFilterBMP = _T("BMP  (*.BMP)|*.BMP|");
	CString lv_strFilterPNG = _T("PNG  (*.PNG)|*.PNG|");
	CString lv_strFilterTIF = _T("TIF  (*.TIF)|*.TIF|");
	CString lv_strFilterDIB = _T("DIB  (*.DIB)|*.DIB|");
	CString lv_strFilterPBM = _T("PBM  (*.PBM)|*.PBM|");
	CString lv_strFilterPGM = _T("PGM  (*.PGM)|*.PGM|");
	CString lv_strFilterPPM = _T("PPM  (*.PPM)|*.PPM|");
	CString lv_strFilterSR  = _T("SR  (*.SR) |*.SR|");
	CString lv_strFilterRAS = _T("RAS  (*.RAS)|*.RAS|");
	CString lv_strFileFilter = lv_strFilterAll + lv_strFilterPNG + lv_strFilterJPG + lv_strFilterBMP
		+ lv_strFilterTIF+ lv_strFilterDIB + lv_strFilterPBM + lv_strFilterPGM + lv_strFilterPPM
		+ lv_strFilterSR+ lv_strFilterRAS;
	// 	CFileDialog::CFileDialog(
	// 		BOOL bOpenFileDialog,					// TRUE:     ;FALSE:       
	// 		LPCTSTR lpszDefExt = NULL,				//           
	// 		LPCTSTR lpszFileName = NULL,			//         
	// "Chart Files (*.xlc)|*.xlc| Worksheet Files (*.xls)|*.xls| Data Files (*.xlc;*.xls)|*.xlc ; *.xls| All Files (*.*)|*.*||";
	// 		DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,		//         
	// 		LPCTSTR lpszFilter = NULL,				//                   
	// 		CWnd* pParentWnd = NULL					//       
	// 		);
	// 	CString CFileDialog::GetPathName :       ,          :c:/test/test1.txt
	// 	CString CFileDialog::GetFileName :       ,      :test1.txt
	// 	CString CFileDialog::GetFileExt  :         , :txt
	// 	CString CFileDialog::GetFileTitle:       ,           :test1
	//       
	CFileDialog lv_FileOpenDlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY, lv_strFileFilter, NULL);
	//            
	lv_FileOpenDlg.m_ofn.lpstrTitle = _T("        ");
	//         
	if(IDOK != lv_FileOpenDlg.DoModal())
	{
		return;
	}
	else
	{
		//       
		m_strFilePathName = lv_FileOpenDlg.GetPathName();
		m_strFileName = lv_FileOpenDlg.GetFileName();
		m_strExtName = lv_FileOpenDlg.GetFileExt();
	}

ファイルの保存ダイアログ
			//        
			CString lv_strFileName = _T("");
			//         
			CString lv_strFilterJPG = _T("JPG  (*.JPG)|*.JPG|");
			CString lv_strFileFilter = lv_strFilterJPG;
			//         
			CString lv_strName[] = {"", "jpg",""};
			CString lv_strExtension = _T("");
			//          
			CFileDialog lv_FileSaveDlg(FALSE, NULL, NULL, OFN_HIDEREADONLY, lv_strFileFilter);
			if (IDOK != lv_FileSaveDlg.DoModal())
			{
				return;
			}
			else
			{
				//        
				lv_strFileName = lv_FileSaveDlg.m_ofn.lpstrFile;
				//         
				lv_strExtension = lv_strName[lv_FileSaveDlg.m_ofn.nFilterIndex];
				lv_strFileName = lv_strFileName + _T(".") + lv_strExtension;
				DumpWindow(m_HalconWnd1, "jpg", HTuple(lv_strFileName));
				m_strStatus0.Format(_T("    :      !%s!"), lv_strFileName);
				SetDlgItemText(IDC_PROJECT_STATIC_STATUS0, m_strStatus0);
			}

フォルダの選択ダイアログ
	// typedef struct _browseinfoW {
	//     HWND			hwndOwner;		//               
	//     PCIDLIST_ABSOLUTE pidlRoot;	// ITEMIDLIST     ,           ,
	//										                            。
	//										        NULL,           。
	//     LPWSTR		pszDisplayName;	//                    。
	//										             MAX_PATH(260)   。
	//     LPCWSTR		lpszTitle;		//               ,                、     。
	//     UINT			ulFlags;		//              。    0,             。
	//     BFFCALLBACK	lpfn;			//                    。
	//										           ,           。      NULL。
	//     LPARAM		lParam;			//                  。
	//     int			iImage;			//           。                   。
	// } BROWSEINFOW, *PBROWSEINFOW, *LPBROWSEINFOW;
	// ulFlags    :
	// BIF_BROWSEFORCOMPUTER:      。                 ,        “OK”     。
	// BIF_BROWSEFORPRINTER:      。          ,  “OK”     。
	// BIF_BROWSEINCLUDEFILES:        ,       。
	// BIF_DONTGOBELOWDOMAIN:      ,              。
	// BIF_EDITBOX:             ,                  。
	// BIF_RETURNFSANCESTORS:           。              ,“OK”       。
	// BIF_RETURNONLYFSDIRS:          。  :          ,          , “OK”    ,
	//							    “    ” “    ”         ,“OK”     。
	// BIF_STATUSTEXT:             。                     。
	// BIF_VALIDATE:   BIF_EDITBOX    ,       。                ,
	//					        BFFM_VALIDATEFAILED       。
	//   :            : BIF_EDITBOX|BIF_RETURNFSANCESTORS
	//     bi.ulFlags=BIF_BROWSEINCLUDEFILES;          ,       :
	//	bi.ulFlags=BIF_DONTGOBELOWDOMAIN       ,          zip   。
	CString lv_strFolderPath = _T("");
	CHAR lv_charBuffer[MAX_PATH];
	memset(lv_charBuffer, 0, sizeof(lv_charBuffer));
	BROWSEINFO lv_BrowseInfo;
	//    BROWSEINFO  
	lv_BrowseInfo.hwndOwner			= this->GetSafeHwnd();						// NULL;
	lv_BrowseInfo.pidlRoot			= NULL;
	lv_BrowseInfo.pszDisplayName	= NULL;
	lv_BrowseInfo.lpszTitle			= _T("       ");
	// lv_BrowseInfo.ulFlags		= BIF_BROWSEINCLUDEFILES;
	lv_BrowseInfo.ulFlags			= BIF_RETURNONLYFSDIRS | BIF_STATUSTEXT;	// BIF_EDITBOX;
	lv_BrowseInfo.lpfn				= NULL;
	lv_BrowseInfo.lParam			= NULL;
	lv_BrowseInfo.iImage			= NULL;										// IDR_MAINFRAME;
	//          
	LPITEMIDLIST lv_lpItemIDList = NULL;
	lv_lpItemIDList = SHBrowseForFolder(&lv_BrowseInfo);
	if(NULL == lv_lpItemIDList)
	{
		return;
	}
	if (SHGetPathFromIDList(lv_lpItemIDList, lv_charBuffer))
	{
		lv_strFolderPath = lv_charBuffer;
		m_strFolderPathName = lv_strFolderPath;
	}