void C***Dialog::CreateRgn() { HRGN wndRgn; CClientDC dc(this); CFont mFont; if (dc.m_hDC!=NULL) { VERIFY(mFont.CreateFont(200, 50, 0, 0, FW_HEAVY, TRUE, FALSE, 0, ANSI_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, L"宋体")); //开始记录窗体轮廓路径 dc.BeginPath(); //设置背景为透明模式,这句话是必须有的。 dc.SetBkMode(TRANSPARENT); CFont * pOldFont; pOldFont = dc.SelectObject( &mFont ); dc.TextOut(0, 0, L"Hello"); //结束记录窗体轮廓路径 dc.SelectObject( pOldFont ); dc.EndPath(); //把所记录的路径转化为窗体轮廓句柄 wndRgn = ::PathToRegion(dc.m_hDC); //赋予窗体指定的轮廓形状 this->SetWindowRgn(wndRgn, TRUE); } } //在OnInitDialog返回之前调用就可以了.