怎么绘制其他形状的窗口

如何绘制其他形状的窗口?
几乎所有的窗口都是矩形的,能不能绘制椭圆型的窗口?
是不是先绘制矩形窗口然后在矩形里面绘制椭圆,把多余没用的地方弄成透明,是这样的吗?我是菜鸟,还请高手指教!

------解决方案--------------------
BOOL CMyDlg::OnInitDialog()
{
// ...
// ...
CRgn rgn;
rgn.CreateEllipticRgn(200, 100, 350, 250);
SetWindowRgn((HRGN)rgn.GetSafeHandle(),TRUE);
// ...
// ...
}
------解决方案--------------------
BOOL CMyDlg::OnInitDialog()
{
// ...
// ...
CRgn rgn;
rgn.CreateEllipticRgn(200, 100, 350, 250);
SetWindowRgn((HRGN)rgn.GetSafeHandle(),TRUE);
// ...
// ...
}
可行
------解决方案--------------------
你的想法是对的,是这么实现的
------解决方案--------------------
CRgn rgn;//声明一个可以构造任意形状类的对象
rgn.CreateEllipticRgn(左上点的X, 左上点的Y, 窗口宽, 窗口高);//创建一个圆饼图窗口,
SetWindowRgn((HRGN)rgn.GetSafeHandle(),TRUE);//显示