前言:我们的用默认生成的窗口尺寸大小都是矩形的,为了具有个性,可以自己来设置窗口的形状大小.
如下方法可以解决这个问题:
在窗体创建之前调用
CDC* pDC; pDC = this->GetDC();
::BeginPath(pDC->m_hDC); //设置为透明模式
::SetBkMode(pDC->m_hDC, TRANSPARENT);
RECT rect;
this->GetClientRect(&rect);
pDC->MoveTo(rect.left, rect.top);
pDC->LineTo(rect.right, rect.top);
pDC->LineTo(rect.right, rect.bottom - 20);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2, rect.bottom - 20);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2, rect.bottom);
pDC->LineTo(rect.left + (rect.right - rect.left) / 2 - 20, rect.bottom - 20);
pDC->LineTo(rect.left, rect.bottom - 20);
pDC->LineTo(rect.left, rect.top);
HRGN hRgn;
::EndPath(pDC->m_hDC);
hRgn = ::PathToRegion(pDC->m_hDC);
this->SetWindowRgn(hRgn, TRUE)
完了,最主要的几个API函数BeginPath EndPath PathToRegion SetWindowRgn的使用方法可以通过MSDN来获取.希望这小段代码能对你有所帮助!