Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Anda dapat menggunakan aliran untuk mentransfer data ke dalam atau di luar kontrol edit yang kaya. Aliran didefinisikan oleh strukturEDITSTREAM, yang menentukan buffer dan fungsi panggilan balik yang ditentukan aplikasi.
Untuk membaca data ke dalam kontrol suntingan kaya (yaitu, memasukkan data), gunakan pesan EM_STREAMIN. Kontrol berulang kali memanggil fungsi panggilan balik aplikasi, yang mentransfer sebagian data ke dalam buffer setiap kali.
Untuk menyimpan konten kontrol edit yang kaya (yaitu, mengalirkan data), Anda dapat menggunakan pesan EM_STREAMOUT. Kontrol berulang kali menulis ke buffer dan kemudian memanggil fungsi panggilan balik aplikasi. Untuk setiap panggilan, fungsi panggilan balik menyimpan konten buffer.
Apa yang perlu Anda ketahui
Teknologi
Prasyarat
- C/C++
- Pemrograman Antarmuka Pengguna Windows
Peraturan
Menggunakan Stream
Contoh kode berikut menunjukkan cara membaca file .rtf ke dalam kontrol edit yang kaya. Handel file diteruskan ke fungsi panggilan balik melalui dwCookie anggota strukturEDITSTREAM.
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;
}
Topik terkait