Windows API学习-static静态文本框控件(3)
- 简 介
- 下 载
- 留 言
- 说 明
获取、修改控件文本
GetWindowText 函数用于将指定窗口的标题文本(如果存在)拷贝到一个缓存区内;如果指定的窗口是一个控件,则拷贝控件的文本。它的原型为:
Int GetWindowText( HWND hWnd, //窗口/控件句柄 LPTSTR lpString, //指向接收文本的缓冲区指针 Int nMaxCount //要保存在缓冲区内的字符的最大个数 );
说明:
nMaxCount 指定要保存在缓冲区内的字符的最大个数,其中包含NULL字符。如果文本超过界限,它就被截断。
函数执行成功,返回拷贝的字符的个数。
代码举例:
//定义缓冲区 TCHAR szStaticBuf[100]; //获取 static 控件的文本 GetWindowText(hStatic, szStaticBuf, 100);
类似的,SetWindowText 函数可以用来设置窗口标题或控件文本,它的原型为:
BOOL SetWindowText( HWND hwnd, LPCTSTR lpString );
下面的例子用来显示鼠标点击的次数:
//窗口过程 LRESULT CALLBACK WndProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam ){ PAINTSTRUCT ps; HDC hdc; //必须被设置为静态变量 static int iClick = 0; //鼠标单击次数 static TCHAR szTextBuf[20]; //static 控件文本(缓冲区) static HWND hStatic; //static 控件句柄 switch (message){ case WM_CREATE: hStatic = CreateWindow( L"static", //静态文本框的类名 L"C语言中文网", //控件的文本 WS_CHILD /*子窗口*/ | WS_VISIBLE /*创建时显示*/ | WS_BORDER /*带边框*/| SS_CENTER /*水平居中*/ | SS_CENTERIMAGE /*垂直居中*/, 20 /*X坐标*/, 20 /*Y坐标*/, 200 /*宽度*/, 100 /*高度*/, hWnd, //父窗口句柄 (HMENU)1, //为控件指定一个唯一标识符 hInst, //当前程序实例句柄 NULL ); break; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); // TODO: 在此添加任意绘图代码... EndPaint(hWnd, &ps); break; case WM_LBUTTONDOWN: //鼠标左键单击消息 iClick++; wsprintf(szTextBuf, TEXT("鼠标被单击%d次"), iClick); SetWindowText(hStatic, szTextBuf); break; case WM_DESTROY: PostQuitMessage(0); break; } return DefWindowProc(hWnd, message, wParam, lParam) ; }