MFC异形窗口代码片断:
//绘制边框
CRgn rgn;
int nYJ = 20;
if (!m_bYJ)nYJ = 0;//边界圆角
rgn.CreateRoundRectRgn(m_ShowRect.left, m_ShowRect.top, m_ShowRect.right, m_ShowRect.bottom, nYJ, nYJ); //根据窗口矩形创建一个圆角矩形
CBrush brush2(m_crBord);
dc.FrameRgn(&rgn, &brush2, m_nBordW, m_nBordW);//边框绘制
SetWindowRgn(rgn, TRUE);//异形窗口
rgn.DeleteObject();
关键函数
语法
int SetWindowRgn( [in] HWND hWnd, [in] HRGN hRgn, [in] BOOL bRedraw );
参数
[in] hWnd
要设置其窗口区域的窗口的句柄。
[in] hRgn
区域的句柄。 该函数将窗口的窗口区域设置为此区域。
如果 hRgn 为 NULL,则该函数会将窗口区域设置为 NULL。
[in] bRedraw
指定系统是否在设置窗口区域后重新绘制窗口。 如果 bRedraw 为 TRUE,则系统会这样做;否则,它不会。
通常,如果窗口可见,请将 bRedraw 设置为 TRUE 。