多边形窗口

王朝vc·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

多边形窗口

闻怡洋

当你看腻了矩形窗口后,你想不想改变你窗口的形状呢?你需要做的很简单。

产生一个CRgn对象,并调用int CWnd::SetWindowRgn( HRGN hRgn, BOOL

bRedraw );

下面将讲述具体方法:

在窗口的OnCreate中(窗口必须为WS_POPUP风格,其它的我没有试过)下面的代码将创建一个三角形的窗口。

int ctW::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

if (CWnd::OnCreate(lpCreateStruct) == -1)

return -1;

POINT pt[3];

pt[0].x=100;

pt[0].y=20;

pt[1].x=0;

pt[1].y=150;

pt[2].x=180;

pt[2].y=150;

m_rgn.CreatePolygonRgn(pt,3,WINDING);

SetWindowRgn(m_rgn,1);

// TODO: Add your specialized creation code here

return 0;

}

CWnd::GetWindowRgn(...)将通过返回值告诉你该多边形是否为一个单独的矩形。

请注意该RGN坐标是以原来窗口的矩形为零点坐标的而不是以屏幕坐标为零点坐标。你可以利用CRgn::CombineRgn(...)将多个RGN并起了形成自己所需要的形状。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航