我在哪里使用TextOut或DrawText?
TCHAR text[]= "My First Window";
RECT rc;
HDC wdc = GetWindowDC(hWnd);
GetClientRect (hWnd, &rc);
SetTextColor(wdc, 0x00000000);
SetBkMode(wdc,TRANSPARENT);
rc.left=40;
rc.top=10;
TextOut(hdc,rc.left,rc.top,text,ARRAYSIZE(text));
EndPath(hdc);
SelectClipPath(hdc, RGN_AND);
我将其放在WM_CREATE:
结果是一个空白窗口。如果需要,我可以提供更多代码,但它只是一个标准的Win32空白窗口。
这是我的第一个真正的Win32应用程序,我用谷歌搜索并搜索了一个小时而没有找到我的问题的答案。
谢谢
答案 0 :(得分:3)
Windows无法正常运行。你不能只画一次,并期望你画的东西永远显示。在处理WM_CREATE
时,您的窗口可能甚至不可见。
(另外,您也在上述代码中泄露了wdc
,并将wdc
与hdc
进行了交换。
您需要处理WM_PAINT
消息并在那里进行绘画。致电BeginPaint()
以获取可以使用的HDC,并在完成后致电EndPaint()
。
你应该在Win32编程中获得一本初学者的书,因为处理WM_PAINT
是非常基本的东西。从MSDN文档开始: