在windows桌面上画矩形框

在桌面上画矩形


void showRectInDesktop(RECT & rect)
{
    // 获得DC
    HDC hDC = ::GetDC(0);
    // 创建实线,宽度为1,红色的笔
    HPEN hPen = ::CreatePen(PS_SOLID, 4, RGB(255,0,0));
     // 将笔选入DC
    HPEN hOldPen=(HPEN)::SelectObject(hDC, hPen);
    // 创建一个透明画刷
    HBRUSH hBrush = (HBRUSH)::GetStockObject(NULL_BRUSH);
    // 将画刷选入DC
    HBRUSH hOldBrush= (HBRUSH)::SelectObject(hDC,hBrush);
     // 绘制矩形
    ::Rectangle(hDC, rect.left, rect.top, rect.right, rect.bottom);
    // 恢复绘图对象
     ::SelectObject(hDC,hOldPen);
     ::SelectObject(hDC,hOldBrush);
     // 删除绘图对象
     ::DeleteObject(hPen);
     ::DeleteObject(hBrush);
     // 释放DC
     ::ReleaseDC(0, hDC);
}

画完后,恢复桌面原有样子(桌面重绘)

::InvalidateRect(0, NULL, TRUE);
发布了17 篇原创文章 · 获赞 10 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/markinstephen/article/details/60781050