VS2008, MFC 文件的操作4 - CFile類, CFileDialog類 方式 文本方式打開

接上一節筆記:VS2008, MFC 文件的操作3 - Win32 API 方式 文本方式打開

1. 代碼 及 點擊 子菜單項 WriteFile 時候的可選文件 

void Cvs2008_SX_jiaocheng12View::OnFileWritefile()
{
	// TODO: 在此添加命令處理程序代
	//CFilel類
	//CFile file(L"5.txt",CFile::modeCreate | CFile::modeWrite);
	//file.Write(L"yyyyyxxxxxxZZZZZZ",strlen("yyyyyxxxxxxZZZZZZ"));
	//file.Close();
	//寫入文件窗口過程
	CFileDialog fileDlg(FALSE);//創建文件對話框用 參數FALSE
	fileDlg.m_ofn.lpstrTitle= L"My file SAVE dialog box";
	fileDlg.m_ofn.lpstrFilter = L"Text Files(*.txt\0*.txt\0All Files(*.*)\0*.8\0\0";//注意\0的使用,最後要兩個\0
	fileDlg.m_ofn.lpstrDefExt = L"txt";
	if(IDOK == fileDlg.DoModal())//模態對話框
	{
		CFile file(fileDlg.GetFileName(),CFile::modeCreate | CFile::modeWrite);
		file.Write(L"Open a dialog box give a name to file and write this context to it",strlen("Open a dialog box give a name to file and write this context to it"));
		file.Close();
	}
	
}

2. 代碼及點擊 子菜單ReadFile 

void Cvs2008_SX_jiaocheng12View::OnFileReadfile()
{
	// TODO: 在此添加命令處理程序代
	//CFile類
	//CFile file(L"5.txt",CFile::modeRead);
	//char *pBuf;
	//DWORD dwFileLen;
	//dwFileLen = file.GetLength();
	//pBuf = new char[dwFileLen+1];
	//pBuf[dwFileLen] = 0;
	//file.Read(pBuf,dwFileLen);
	
			//char 和wchar 轉換
	//int num = MultiByteToWideChar(0,0,pBuf,-1,NULL,0);
	//wchar_t *wide = new wchar_t[num];
	//MultiByteToWideChar(0,0,pBuf,-1,wide,num);

	//MessageBox(wide);
	//file.Close();
	//打開文件窗口過程
	CFileDialog fileDlg(TRUE);//打開文件對話框用 參數TRUE
	fileDlg.m_ofn.lpstrTitle= L"My file OPEN dialog box";
	fileDlg.m_ofn.lpstrFilter = L"Text Files(*.txt\0*.txt\0All Files(*.*)\0*.8\0\0";//注意\0的使用,最後要兩個\0
	//fileDlg.m_ofn.lpstrDefExt = L"txt";//不需要缺省擴展名
	if(IDOK == fileDlg.DoModal())//模態對話框
	{
		CFile file(fileDlg.GetFileName(), CFile::modeRead);//爲讀取而打開
		char *pBuf;
		DWORD dwFileLen;
		dwFileLen = file.GetLength();
		pBuf = new char[dwFileLen+1];
		pBuf[dwFileLen] = 0;
		file.Read(pBuf,dwFileLen);
		
				//char 和wchar 轉換
		int num = MultiByteToWideChar(0,0,pBuf,-1,NULL,0);
		wchar_t *wide = new wchar_t[num];
		MultiByteToWideChar(0,0,pBuf,-1,wide,num);

		MessageBox(wide);
		file.Close();
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章