ITPub博客

首页 > 应用开发 > IT综合 > 多边形窗口 (转)

多边形窗口 (转)

原创 IT综合 作者:worldblog 时间:2007-12-04 11:02:02 0 删除 编辑
多边形窗口 (转)[@more@]

多边形窗口

闻怡洋

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

产生一个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并起了形成自己所需要的形状。

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10752043/viewspace-988257/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    6241
  • 访问量
    2462335