在 MFC(Microsoft Foundation Classes)中,CWnd::SetWindowRgn 是一个公共方法,用于设置窗口的区域(Region)。该方法的声明如下:
BOOL SetWindowRgn(HRGN hRgn, BOOL bRedraw = TRUE);

  •  hRgn: 一个 HRGN 句柄,表示窗口的新区域。HRGN 是 Windows 中用于定义区域的句柄。

  •  bRedraw: 一个布尔值,表示在设置区域后是否重新绘制窗口。如果为 TRUE,则重绘窗口。


通过调用 SetWindowRgn 方法,你可以为窗口定义一个非矩形的区域,从而使窗口的形状变得非常灵活。

以下是一个示例,演示如何在 MFC 应用程序中使用 SetWindowRgn 方法:
// 假设 pWnd 是你的窗口类的一个成员变量
HRGN hRgn = ::CreateEllipticRgn(0, 0, 300, 200);  // 创建椭圆形的区域

pWnd->SetWindowRgn(hRgn, TRUE);

在这个示例中,使用 CreateEllipticRgn 函数创建了一个椭圆形的区域,然后通过调用 SetWindowRgn 将该区域应用到窗口。这样,窗口的形状将变为椭圆形。你可以根据需要创建不同形状的区域,并将其设置为窗口的区域。


转载请注明出处:http://www.zyzy.cn/article/detail/23567/MFC/CWnd