怎么用CRen类构造一个多边形,给个例程好吗?这方面的书太少了。(62分全给)

Hover 2001-08-15 01:17:13

怎么用CRen类构造一个多边形,给个例程好吗?这方面的书太少了。
我用在建立多边形的窗口方面。
(62分全给)
...全文
69 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
panda_w 2001-08-15
  • 打赏
  • 举报
回复
int CMyDialog::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
CRect rc1(0,0,366,290);
CRect rc2(35,290,331,297);
CRect rc4(131,305,237,323);
CRect rc5(66,323,300,339);
CRgn rgn1,rgn2,rgn3,rgn4,rgn5;
rgn1.CreateRectRgnIndirect(rc1);
rgn2.CreateRectRgnIndirect(rc2);
rgn4.CreateRectRgnIndirect(rc4);
rgn5.CreateRectRgnIndirect(rc5);
rgn1.CombineRgn(&rgn1,&rgn2,RGN_OR);
POINT pt1[4];
pt1[0].x=35;
pt1[0].y=297;
pt1[1].x=331;
pt1[1].y=297;
pt1[2].x=323;
pt1[2].y=305;
pt1[3].x=43;
pt1[3].y=305;
rgn3.CreatePolygonRgn(pt1,4,WINDING);
rgn1.CombineRgn(&rgn1,&rgn3,RGN_OR);
rgn1.CombineRgn(&rgn1,&rgn4,RGN_OR);
rgn1.CombineRgn(&rgn1,&rgn5,RGN_OR);
SetWindowRgn(rgn1,1);

return 0;
}
这个是一个显示器模样的窗口!
MeKing 2001-08-15
  • 打赏
  • 举报
回复
我给你介绍一本书<<VISUAL C++开发GIS系统--开发实例剖析>>---电子工业出版社
zzh 2001-08-15
  • 打赏
  • 举报
回复
在www.codegure.com上有好几个关于不规则形状的源程序,你去看看
ShyWJB 2001-08-15
  • 打赏
  • 举报
回复
这是一个用CRgn填充的例子
void CDibView::OnGdiRgn()
{
CClientDC dc(this);
CRgn EllipseRgn;
CRgn RoundRgn;
CRgn PolyRgn;
CBrush brush(HS_CROSS,RGB(255,0,0));
CPoint p[5];
p[0].x=10; p[1].x=50; p[2].x=100; p[3].x=150; p[4].x=400;
p[0].y=10; p[1].y=90; p[2].y=60; p[3].y=200; p[4].y=400;
PolyRgn.CreatePolygonRgn(p,5,ALTERNATE/*WINDING*/);
EllipseRgn.CreateEllipticRgn(110,10,200,100);//椭圆rgn
RoundRgn.CreateRoundRectRgn(110,110,200,200,20,20);//圆角矩形rgn

dc.SetBkMode(TRANSPARENT);//背景模式透明,屏蔽掉了背景色设置
dc.SetBkColor(RGB(0,255,0));//设置背景色
dc.FillRgn(&EllipseRgn,&brush);
dc.FillRgn(&RoundRgn,&brush);
dc.FillRgn(&PolyRgn,&brush);//多边形填充

brush.DeleteObject();
EllipseRgn.DeleteObject();
RoundRgn.DeleteObject();
dc.DeleteDC();
}

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧