我创建了一个父窗口,它有许多子窗口,如按钮,静态文本exc。它们都是可见的并且没有任何问题,但是当我向窗口回调添加一段代码时,它们全部消失了+我看不到我刚试图从函数中绘制的行。
如何摆脱这个问题?
case WM_PAINT:
{
HDC hdc = GetDC(hwnd);
HGDIOBJ hp = CreatePen(0 ,5,RGB(0,100,0));
SelectObject(hdc,hp);
MoveToEx(hdc, 825, 0, 0);
LineTo(hdc, 825, 1000);
ReleaseDC(hwnd, hdc);
}
break;
答案 0 :(得分:0)
您不能使用BeginPaint / EndPaint
如果您进入父窗口,则必须注意不要覆盖任何内容。请参见样式WS_CLIPCHILDREN。
因为您没有使用BeginPaint / EndPaint,所以未准备好背景。如果您将消息传递给默认窗口过程,那里的代码将调用BeginPaint / EndPaint,这将导致背景被删除。
您可以创建一支笔,将其选择为DC并且永远不会破坏笔。每次重新绘制时都会创建一支新笔。
请阅读一些关于使用Windows GDI的书籍!当你告诉自己基本知识时,我写的所有内容都可以轻松修复......