0
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;

我只是想知道 - 使用 WM_GETTEXT 时我通常应该将大小(当前为 512)设置为什么?我想这与源代码管理中有多少文本不同?

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

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

4

1 回答 1

7

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

于 2011-04-27T18:55:29.753 回答