我想在所有窗口上方的屏幕上绘制文字。 我发现了HDC并开始使用它。我有两个问题:文字闪烁,有背景。我发现了这个功能:
SetBkMode(hdc, TRANSPARENT);
但所有这一切都取消了闪烁。我还有背景。我现在的最终代码是:
RECT rect = { 20, 20, 200, 200 };
SetTextColor(hdc,RGB(255,0,0));
SetBkMode(hdc, TRANSPARENT);
SetBkColor(hdc,RGBA(0,255,0,0));
DrawText(hdc, L"My text",-1,&rect,DT_LEFT);
我把这段代码放入while(true)语句并睡眠1毫秒。 在我得到hdc init之前:
HDC hdc = GetDC(0);
所以在这一点上我得到了不闪烁的文字,但有背景(不透明)。 背景是半透明的,所以我可以看到它下面的东西,但它没有更新。当我在它下面放一个新窗口时,我可以看到旧窗口的“背景”。
我尝试在这个问题中使用wndproc: How to draw text with transparent background using c++/WinAPI? 但它什么都没做(我甚至看不到文字) 我尝试使用msdn网站的textout示例: http://msdn.microsoft.com/en-us/library/windows/desktop/dd145133(v=vs.85).aspx 但它也没有做任何事情。
如何在没有背景的情况下在屏幕上绘制文字? 谢谢你们