以下一段代码是用CDC画出的路径设置窗口的区域,在窗口设计上有了更多想象空间,挺有意思的!
CDC* pDC;
pDC = this->GetDC();
::BeginPath(pDC->m_hDC);
::SetBkMode(pDC->m_hDC, TRANSPARENT);
// ::SetTextColor(pDC->m_hDC,RGB(255,255,255));
//
RECT rect;
this->GetClientRect(&rect);
pDC->MoveTo(rect.left, rect.top);
pDC->LineTo(rect.right, rect.top);
pDC->LineTo(rect.right, rect.bottom - GLOBAL_OVERLEN);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2, rect.bottom - GLOBAL_OVERLEN);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2, rect.bottom);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2 - GLOBAL_OVERWIDTH, rect.bottom - GLOBAL_OVERLEN);
pDC->LineTo(rect.left, rect.bottom - GLOBAL_OVERLEN);
pDC->LineTo(rect.left, rect.top);
//
::EndPath(pDC->m_hDC);
hRgn = ::PathToRegion(pDC->m_hDC);
this->SetWindowRgn(hRgn, TRUE);
CDC* pDC;
pDC = this->GetDC();
::BeginPath(pDC->m_hDC);
::SetBkMode(pDC->m_hDC, TRANSPARENT);
// ::SetTextColor(pDC->m_hDC,RGB(255,255,255));
//
RECT rect;
this->GetClientRect(&rect);
pDC->MoveTo(rect.left, rect.top);
pDC->LineTo(rect.right, rect.top);
pDC->LineTo(rect.right, rect.bottom - GLOBAL_OVERLEN);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2, rect.bottom - GLOBAL_OVERLEN);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2, rect.bottom);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2 - GLOBAL_OVERWIDTH, rect.bottom - GLOBAL_OVERLEN);
pDC->LineTo(rect.left, rect.bottom - GLOBAL_OVERLEN);
pDC->LineTo(rect.left, rect.top);
//
::EndPath(pDC->m_hDC);
hRgn = ::PathToRegion(pDC->m_hDC);
this->SetWindowRgn(hRgn, TRUE);