Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Du kan använda strömmar för att överföra data till eller från en omfattande redigeringskontroll. En dataström definieras av en EDITSTREAM- struktur, som anger en buffert och en programdefinierad återanropsfunktion.
Om du vill läsa in data i en omfattande redigeringskontroll (d.v.s. strömma data) använder du meddelandet EM_STREAMIN. Kontrollen anropar upprepade gånger programmets återanropsfunktion, som överför en del av data till bufferten varje gång.
Om du vill spara innehållet i en omfattande redigeringskontroll (d.v.s. strömma data) kan du använda EM_STREAMOUT meddelandet. Kontrollen skriver upprepade gånger till bufferten och anropar sedan programmets återanropsfunktion. För varje anrop sparar återanropsfunktionen innehållet i bufferten.
Vad du behöver veta
Teknologier
Förutsättningar
- C/C++
- Programmering av Windows-användargränssnitt
Instruktioner
Använd en stream
I följande kodexempel visas hur du läser en .rtf fil i en omfattande redigeringskontroll. Filhandtaget skickas till återanropsfunktionen via dwCookie medlemmen i EDITSTREAM---strukturen.
DWORD CALLBACK EditStreamCallback(DWORD_PTR dwCookie,
LPBYTE lpBuff,
LONG cb,
PLONG pcb)
{
HANDLE hFile = (HANDLE)dwCookie;
if (ReadFile(hFile, lpBuff, cb, (DWORD *)pcb, NULL))
{
return 0;
}
return -1;
}
BOOL FillRichEditFromFile(HWND hwnd, LPCTSTR pszFile)
{
BOOL fSuccess = FALSE;
HANDLE hFile = CreateFile(pszFile, GENERIC_READ,
FILE_SHARE_READ, 0, OPEN_EXISTING,
FILE_FLAG_SEQUENTIAL_SCAN, NULL);
if (hFile != INVALID_HANDLE_VALUE)
{
EDITSTREAM es = { 0 };
es.pfnCallback = EditStreamCallback;
es.dwCookie = (DWORD_PTR)hFile;
if (SendMessage(hwnd, EM_STREAMIN, SF_RTF, (LPARAM)&es) && es.dwError == 0)
{
fSuccess = TRUE;
}
CloseHandle(hFile);
}
return fSuccess;
}
Relaterade ämnen