视频链接:http://www.rupeng.com/forum/thread-8803-1-2.html
1.打开指定文件,读取内容到文本框
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case ID_OPEN: { FILE *fp = fopen("c:/1.txt","r"); TCHAR line[256]; fgets(line,sizeof(line),fp); fclose(fp); SetDlgItemText(hwnd,IDC_EDIT1,line); } break; default: break; } }
2.打开一个文件,关键代码:
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case IDC_OK: { OPENFILENAME ofn; char szFile[MAX_PATH]; ZeroMemory(&ofn,sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile; ofn.lpstrFile[0] = TEXT('\0'); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0"); ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.hwndOwner = hwnd;//自学能力、探索能力、猜测能力 ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; if (GetOpenFileName(&ofn)) { //MessageBox(NULL,szFile,"",MB_OK); FILE *fp=fopen(szFile,"r"); TCHAR line[256]; fgets(line,sizeof(line),fp); fclose(fp); SetDlgItemText(hwnd,IDC_EDIT1,line); } } break; default: break; } }
2.打开多个文件,关键代码:
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify) { switch(id) { case IDC_OK: { OPENFILENAME ofn; TCHAR szFile[MAX_PATH]; TCHAR szPath[MAX_PATH]; TCHAR szFileName[80*MAX_PATH]; ZeroMemory(&ofn,sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.lpstrFile = szFile; ofn.lpstrFile[0] = TEXT('\0'); ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = TEXT("ALL\0*.*\0Text\0*.TXT\0"); ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.hwndOwner = hwnd;//自学能力、探索能力、猜测能力 ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT; if (GetOpenFileName(&ofn)) { //MessageBox(NULL,szFile,"",MB_OK); lstrcpyn(szPath, szPath, ofn.nFileOffset ); szPath[ ofn.nFileOffset ] = '\0'; int nLen = lstrlen(szPath); if( szPath[nLen-1] != '\\' ) //如果选了多个文件,则必须加上'\\' { lstrcat(szPath, TEXT("\\")); } TCHAR* p; p= szPath + ofn.nFileOffset; //把指针移到第一个文件 ZeroMemory(szFileName, sizeof(szFileName)); while( *p ) { lstrcat(szFileName, szPath); //给文件名加上路径 lstrcat(szFileName, p); //加上文件名 lstrcat(szFileName, TEXT("\n")); //换行 p += lstrlen(p) +1; //移至下一个文件 } } } break; default: break; } }
总结:文件的操作比较复杂,但是对于我们初学者而言,目前只要知道如何使用就足够了。