使用WM_GETTEXT - 设置大小的内容是什么?

Jef*_*eff 0 arrays delphi size window-handles

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;
Run Code Online (Sandbox Code Playgroud)

我只是想知道 - 在使用WM_GETTEXT时,我通常应该将大小(目前为512)设置为什么?我猜它与源代码管理中的文本数量有什么不同?

在处理相当大的文本时,您建议将其设置为什么?

有没有办法做同样的事情(从句柄获取文本)而不必设置大小等?

小智 7

您应该读取大小WM_GETTEXTLENGTH并使用缓冲区的值.