gpt4 book ai didi

c++ - 使用文件映射读取文件而不是编辑控件中的单独行

转载 作者:太空宇宙 更新时间:2023-11-04 16:18:15 25 4
gpt4 key购买 nike

我有问题:我使用文件映射来读取文件,但它在编辑控件中不显示单独的行:

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 和缓冲区时,我看到它包含换行符,但在 Edit 控件中不显示单独的行。

错误在哪里以及如何解决!???

最佳答案

编辑控件需要一个"\r\n" 序列(即字符值0x0D 0x0A)来创建一个新行。您还需要将 ES_MULTILINE 样式应用于编辑控件。

关于c++ - 使用文件映射读取文件而不是编辑控件中的单独行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20151151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com