C++ 将文本/图像写入HWND的最短代码是什么

C++ 将文本/图像写入HWND的最短代码是什么,c++,winapi,gdi,C++,Winapi,Gdi,我不需要控件或任何东西,我只需要在HWND上写一些东西,无论是居中文本还是图像,显示它已被渲染到。实际的用例是,我在一个我还没有准备好处理它的点上通过了一个HWND,所以我想在它上面显示文本,比如“这个窗口不能使用”,或者一张悲伤的脸图形,等等 没什么特别的,只是原始的黑客代码,但你所拥有的只是在纯Win32中使用的硬件 HDC hdc = GetDC(hwnd); RECT rect; GetClientRect(hwnd, &rect); char * text = "this Wi

我不需要控件或任何东西,我只需要在HWND上写一些东西,无论是居中文本还是图像,显示它已被渲染到。实际的用例是,我在一个我还没有准备好处理它的点上通过了一个HWND,所以我想在它上面显示文本,比如“这个窗口不能使用”,或者一张悲伤的脸图形,等等

没什么特别的,只是原始的黑客代码,但你所拥有的只是在纯Win32中使用的硬件

HDC hdc = GetDC(hwnd);
RECT rect;
GetClientRect(hwnd, &rect);
char * text = "this Window cannot be used";
DrawTextA(hdc, text, strlen(text), &rect, DT_CENTER | DT_VCENTER);
ReleaseDC(hdc);

在绘制文本之前,您可能希望选择不同的字体,但这将帮助您开始。

这实际上相当简单

// Grab the window dimensions.
RECT bounds;
GetClientRect(hwnd, &bounds);

// Grab a DC to draw with.
HDC hdc = GetDC(hwnd);

// The money shot!
DrawText(hdc, messageText, -1, &bounds, DT_CENTER | DT_VCENTER);

// Now give back the borrowed DC.
ReleaseDC(hdc);

您需要获得一个
HDC
。那你就可以走了。如果这显示在屏幕上,则需要确保代码作为WM_PAINT处理程序的一部分运行。如果你想要一个好的答案,你应该指定更多的细节,尤其是你如何得到这个
HWND
。这就是重点,它只是从一个外部库中得到的,它也会告诉我何时重新绘制(它在内部抽象了winProc)。我对Win32已经生疏了,所以我只需要一个专家来抨击一个Hello World的等价物:)另请参见,
TextOut
()您应该接受您的一个答案。问题是,哪一个!!!。。。但是你得到了投票权。但愿我能把你们两个都记下来!