Я пытаюсь поместить данные в свой RichEdit50W, но это не работает. Мне действительно нужна помощь.
Моя функция CreateRichEdit:
void CreateRichEdit(HWND hwndOwner, int x, int y, int width, int height, HINSTANCE hinst)
{
LoadLibrary(TEXT("Msftedit.dll"));
edittext = CreateWindowEx(0, TEXT("RICHEDIT50W"), TEXT("Type here"), ES_MULTILINE | WS_VISIBLE | WS_CHILD | WS_BORDER | WS_TABSTOP | ES_AUTOVSCROLL | WS_VSCROLL,
x, y, width, height,
hwndOwner, NULL, hinst, 0);
char * bidule = "coucou c'est moi";
EDITSTREAM es = { 0 };
es.dwCookie = (DWORD_PTR)bidule;
es.dwError = 0;
es.pfnCallback = EditStreamInCallback;
bool ok = false;
if (SendMessage(edittext, EM_STREAMIN, SF_RTF, (LPARAM)&es) == 0) {
ok = true;
}
}
И в моей функции EditStreamInCallback в моей переменной 'txt' я получаю текст "coucou c'est moi". Но после, когда я пытаюсь написать в pbBuff , я не вижу результата в своем расширенном текстовом поле:
DWORD CALLBACK EditStreamInCallback(DWORD_PTR dwCookie, LPBYTE pbBuff, LONG cb, LONG * pcb)
{
if (!cb)
return (1);
char * txt = (char *) dwCookie;
int i;
for (i = 0; i < 3; i++)
{
*(pbBuff + i) = 'a';
}
*(pbBuff + i) = '\0';
*pcb = 3;
return (0);
}
Мне очень нужна помощь! У вас есть какое-нибудь решение, пожалуйста?
заранее спасибо