我有问题:我用文件映射来读取文件,但它显示在Edit控件不能单独行:读取文件使用文件映射不是单独的行
szFileName = L"abc.txt";
hFile = CreateFile(szFileName, GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FILE_ATTRIBUTE_ARCHIVE, NULL);
hMapFile = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL);
pMemory = MapViewOfFile(hMapFile, FILE_MAP_READ, 0,0,0);
int size_needed = MultiByteToWideChar(CP_UTF8, 0, (LPCCH)pMemory, -1, NULL, 0);
wchar_t *buffer = new wchar_t[size_needed];
MultiByteToWideChar(CP_UTF8, 0, (LPCCH)pMemory, -1, buffer, size_needed);
FileSize = GetFileSize(hFile, NULL);
SendMessage(hWndEdit, WM_SETTEXT, 0, (LPARAM)buffer);
delete[] buffer;
UnmapViewOfFile(pMemory);
CloseHandle(hMapFile);
CloseHandle(hFile);
我的编辑控制:
hWndEdit = CreateWindowEx(NULL, L"Edit", NULL,
WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_AUTOHSCROLL,
50,35,900,300,hWnd,(HMENU)IDC_EDIT,hInstance,NULL);
我使用UNICODE。
虽然我调试pMemory和缓冲区,我看到它包含新的行字符,但在编辑控件不显示单独的行。
错误在哪里,以及如何解决!???
是什么SendMessage函数()返回?也许设置的文本调用失败。 – HerrJoebob