C++:SetWindowText()函数
1. 函数功能
SetWindowText是一个Windows API函数,用于设置指定窗口的文本内容。这个文本内容可以是窗口标题栏中的标题,也可以是某些控件(如编辑框、按钮等)所显示的文本。例如,对于一个应用程序主窗口,可以使用这个函数修改其标题栏的文字;对于一个按钮控件,可以改变按钮上显示的文字。
2. 函数原型和参数
函数原型如下:
BOOL SetWindowText( HWND hWnd, LPCTSTR lpString );
参数说明:
hWnd:这是目标窗口的句柄,用于指定要设置文本的窗口。它确定了函数操作的对象,通过这个句柄,函数能够准确地找到需要修改文本的窗口。例如,在一个包含多个子窗口的父窗口中,可以通过不同子窗口的句柄来分别设置它们的文本。
lpString:这是一个指向以空字符结尾的字符串的指针,这个字符串包含了要设置的新文本内容。这个参数提供了新的文本信息,函数会将其设置到由hWnd指定的窗口中。例如,如果要将一个按钮的文本设置为“确定”,就可以将一个包含“确定”字样的字符串指针传递给这个参数。
3. 返回值
函数返回一个BOOL类型的值,用于表示操作是否成功。如果函数成功地设置了窗口文本,返回值为非零(TRUE);如果设置文本失败,例如因为窗口句柄无效或者系统资源不足等原因,返回值为零(FALSE)。
4. 使用示例
以下示例展示了如何修改记事本(Notepad)窗口的标题:
#include <windows.h> #include <iostream> int main() { HWND hWnd = FindWindow("Notepad", NULL); if (hWnd!= NULL) { if (SetWindowText(hWnd, "新的记事本标题")) { std::cout << "成功修改记事本窗口标题。" << std::endl; } else { std::cout << "修改记事本窗口标题失败。" << std::endl; } } else { std::cout << "未找到记事本窗口。" << std::endl; } return 0; }
在这个示例中,首先使用FindWindow函数尝试找到记事本窗口的句柄。如果找到了有效的句柄(hWnd不为NULL),就调用SetWindowText函数,并传递新的标题字符串“新的记事本标题”。根据函数的返回值判断是否成功修改了窗口标题,并输出相应的提示信息。