【发布时间】:2025-12-14 14:00:02
【问题描述】:
我想在我的窗口周围画一个矩形,但我不想覆盖标题栏。 到目前为止我在窗口回调函数中写的是:
case WM_NCPAINT:
{
HDC hdc;
RECT rect;
HPEN pen;
hdc=GetDCEx(hWnd,(HRGN)wParam,DCX_WINDOW|DCX_CACHE|DCX_INTERSECTRGN|DCX_LOCKWINDOWUPDATE);
GetWindowRect(hWnd,&rect);
pen=CreatePen(PS_SOLID, 10, RGB(255, 0, 0));//red pen 10 pixels in size
SelectObject(hdc,pen);
Rectangle(hdc,0,0,(rect.right-rect.left),(rect.bottom-rect.top));
DeleteObject(pen);
ReleaseDC(hWnd,hdc);
}
break;
但是,这会用白色画笔在窗口标题栏上绘制。
我怎样才能让它不在标题栏上绘画?我丢失了标题栏文本和菜单...
我在创建笔之前尝试使用 HOLLOW_BRUSH,如下所示:
HBRUSH b=CreateSolidBrush(HOLLOW_BRUSH);
SelectObject(hdc,b);
但这只会导致标题栏根本不被绘制(黑色)。
【问题讨论】: