Использование WM_GETTEXT - что установить размер?

Var
 PText : array[0..512] of Char;
 Handle, Child : HWND;
begin
 FillChar(PText,512,0);
 Handle := FindWindow('Notepad',nil);
 Child := FindWindowEx(Handle,0,'Edit',nil);

 Caption := IntToStr(Handle)+' - '+IntToStr(Child);

 SendMessage(Child,WM_GETTEXT,512,Integer(@PText[0]));

 ShowMessage(PText);

end;

Мне просто интересно - Что я должен обычно устанавливать размер (в настоящее время 512) при использовании WM_GETTEXT? Я думаю, это отличается от того, сколько текста есть в системе контроля версий?

Что вы порекомендуете установить при работе с довольно большими объемами текста?

Есть ли способ сделать то же самое (получение текста из ручки) без необходимости устанавливать размеры и тому подобное?

1 ответ

Решение

Вы должны прочитать размер с WM_GETTEXTLENGTH и используйте значение для буфера.

Другие вопросы по тегам