我想知道如何使用Windows API在特定窗口的给定位置编写文本。
例如,如果文本要写入的窗口内坐标为(x,y) = (40,10),那么我需要做什么才能在该位置编写一行文本到该窗口中?
假设你的窗口名称为"hwnd",并且你想要在该窗口的x,y坐标位置写入文本,假设这个文本存储在"message"变量中,例如:
LPCWSTR message=L"My First Window";
RECT rect;
HDC wdc = GetWindowDC(hwnd);
GetClientRect (bgHandle, &rect) ;
SetTextColor(wdc, 0x00000000);
SetBkMode(wdc,TRANSPARENT);
rect.left=40;
rect.top=10;
DrawText( wdc, message, -1, &rect, DT_SINGLELINE | DT_NOCLIP ) ;
DeleteDC(wdc);
就是这样,记住这只是一个例子。
我希望这是一个更完整的答案...
void OnPaint(HWND hWnd)
{
RECT rect;
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
GetClientRect(hWnd, &rect);
SetTextColor(hdc, RGB(0xFF, 0x00, 0x00));
SetBkMode(hdc, TRANSPARENT);
rect.left = 40;
rect.top = 10;
DrawText(hdc, L"Hello World!", -1, &rect, DT_SINGLELINE | DT_NOCLIP);
SelectObject(hdc, oldPen);
DeleteObject(hPen);
EndPaint(hWnd, &ps);
}
bgHandle
是什么? - ST3