第七课511遇见易语言大漠模块制作API取窗口类名标题

1、窗口_取类名

类名 = 取空白文本 (50)
GetClassNameA (窗口句柄, 类名, 50)
返回 (类名)

2、窗口_句柄取线程ID

返回 (GetWindowThreadProcessId (窗口句柄, 进程ID))
GetWindowThreadProcessId

函数功能:该函数返回创建指定窗口线程的标识和创建窗口的进程的标识符,后一项是可选的。

3、窗口_取标题

局_缓冲大小 = GetWindowTextLength (窗口句柄) + 1
局_缓冲区 = 取空白文本 (局_缓冲大小)
GetWindowTextA (窗口句柄, 局_缓冲区, 局_缓冲大小)
返回 (局_缓冲区)

(1)GetWindowTextLength

函数功能:该函数返回指定窗口的标题文本(如果存在)的字符长度。如果指定窗口是一个控件,函数将返回控制内文本的长度。但是GetWindowTextLength函数不能返回在其他应用程序中的控制的文本长度。
返回值:如果函数成功,返回值为文本的字符长度。在一定的条件下,返回值可能比实际的文本长度大。如果窗口无文本,返回值为零。

在一定的条件下,函数GetWindowTextLength的返回值可能比实际的文本长度大。这是由于ANSI和Unicode的混和使用以及系统允许DBCS字符在文本内存在的原因,但是函数返回值要至少与文本的实际长度相等,因此可以利用这一点指导缓存区的分配。在应用程序既使用ANSI函数又使用Unicode的普通对话框时就会有缓存分配的问题;同样,当应用程序在一个Unicode的窗口过程中使用了ANSI的GetWindowTextLength函数,或在一个ANSI的窗口过程中使用了Unicode的GetWindowTextLength函数的时候也有缓存分配的问题。

(2)GetWindowTextA

该函数将指定窗口的标题条文本(如果存在)拷贝到一个缓存区内。如果指定的窗口是一个控件,则拷贝控件的文本。但是,GetWindowText不能接收其他应用程序中控件的文本。

函数原型:Int GetWindowText(HWND hWnd,LPTSTR lpString,Int nMaxCount);
hWnd:带文本的窗口或控件的句柄。
IpString:指向接收文本的缓冲区的指针。
nMaxCount:指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。

如果函数运行成功,返回值是不包含结尾NULL字符的字符串长度。如果指定的窗口(或控件)没有标题栏或者TEXT属性,如果标题栏为空,又如果给定的句柄是无效的,那么返回值是0。


发布日期:

所属分类: 易语言 标签: