так... вот... это вроде бы с этого форума функция FileOpen, и инициализация структуры ofn...
ричедит очищаеца, но не выводица содержимое файла... пустует кароче)...
а в статусбар попадает кривой титл..
| Код | OPENFILENAME OfnInit(HWND hw) { OPENFILENAME ofn; char szFile[260];
ZeroMemory(&ofn, sizeof(ofn)); ofn.lStructSize = sizeof(ofn); ofn.hwndOwner = hw; ofn.lpstrFile = szFile; ofn.lpstrFile[0] = '\0'; ofn.nMaxFile = sizeof(szFile); ofn.lpstrFilter = "Âñå\0*.*\0Îáû÷íûé òåêñò\0*.TXT\0Òåêñò HTML\0*.htm;*.html\0"; ofn.nFilterIndex = 1; ofn.lpstrFileTitle = NULL; ofn.nMaxFileTitle = 0; ofn.lpstrInitialDir = NULL; ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST; return ofn; }
BOOL FileOpen(HWND hEditWnd) { HANDLE hFile; DWORD dwFileSize; DWORD dwBytesRead; LPVOID lpvBuff; char *cBuff; char szTmpBuff[100]; char szWndTitle[] = "Программанах"; SendMessage(hEditWnd, WM_SETTEXT, 0, (LPARAM)"");
OPENFILENAME ofn; ofn = OfnInit(hEditWnd);
ofn.lpstrTitle = "Открыть файл"; GetOpenFileName(&ofn);
hFile = CreateFile(ofn.lpstrFile, GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, (LPSECURITY_ATTRIBUTES) NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, (HANDLE) NULL); if (hFile) {
dwFileSize = GetFileSize(hFile, NULL); if (dwFileSize == INVALID_FILE_SIZE) { MessageBox(NULL, "неудачник!", "Ерор", MB_OK | MB_ICONSTOP); return FALSE; } lpvBuff = VirtualAlloc(NULL, (SIZE_T)dwFileSize, MEM_COMMIT, PAGE_READWRITE); if (lpvBuff == NULL) { MessageBox(NULL, "неудачник!", "эррор", MB_OK | MB_ICONSTOP); return FALSE; } cBuff = (LPTSTR)lpvBuff; ////////////////////////////////////////////////////////////////////////////////////// //вот тут имя файла помещаеца в статусбар
GetFileTitle(ofn.lpstrFile, szTmpBuff, GetFileTitle(ofn.lpstrFile, NULL, 0)); strcat(szWndTitle, " -- "); strcat(szWndTitle, szTmpBuff); SendMessage(GetDlgItem(GetParent(hEditWnd),DLG_MAIN_SBAR), (UINT)WM_SETTEXT, (WPARAM)NULL, (LPARAM)szWndTitle); ////////////////////////////////////////////////////////////////////////////////////// //чтение файла SetFilePointer(hFile, 0, 0, FILE_BEGIN); ReadFile(hFile, cBuff, dwFileSize, &dwBytesRead, NULL); *(cBuff + dwBytesRead) = 0; SendMessage(hEditWnd, (UINT)EM_REPLACESEL, (WPARAM)FALSE, (LPARAM)cBuff); ////////////////////////////////////////////////////////////////////////////////////// VirtualFree(lpvBuff, dwFileSize, MEM_RELEASE);
SendMessage(hEditWnd, (UINT)EM_SETSEL, (WPARAM)0, (LPARAM)0); SendMessage(hEditWnd, EM_SETMODIFY, FALSE, 0); CloseHandle(hFile); } else { MessageBox(NULL, "ты неудачник!", "Ошибка!", MB_OK); return FALSE; } return TRUE; }
|
|