VC如何开发不规则图形,如图,谢谢 小弟最近在开发一个图形化编程软件,其中涉及要一个操作块组合,目前采用的是下面的方式。不知道下面的不规则图形应该如何开发谢谢实际上这些块是可以相互分离的,但是重点在于其中的 图片与图片是可以相扣的每个块都有沟沟槽槽可以采用下面的方式进行相扣有过相关开发经验的牛人,谢谢你们的不吝赐教,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一言难尽那,楼主。首先你要对你的那些图形组件设计一种合理的数据结构。假定,叫Component类,那么要能自我绘制,同时还要具备和其他图形边界检查的能力。这些类的对象,还要能相互组合,成为一个新对象。总之首先你要做好设计一种适合表达你的程序的模型。有点麻烦就是。 是啊,用CRgn 那些什么圆形窗口的,都是用CRgn 加外围限制做出来的. 给个代码楼主参考一下吧.先加一个响应WM_CREATE的在OnCreate中加入 CRgn rgn; rgn.CreateEllipticRgn(0,0,500,500); SetWindowRgn((HRGN)rgn.m_hObject,1);这样我们做出来的,就是在这个 0,0,500,500 圆里的窗口了.要做什么棱形,上面是椭圆,下面是矩形的,楼主就要先看看CRgn 的用法,建几个形状,大家做逻辑包含的运算,最后得出你要的CRgn结果.再把该 CRgn 设入你的窗里,就成为了各种形状的窗口了 CRgn rgn1; rgn1.CreateEllipticRgn(0,0,500,500); CRgn rgn2; rgn2.CreateRectRgn(0,200,500,500); rgn2.CombineRgn(&rgn1,&rgn2,RGN_OR); //上面半圆下面方,或起来 SetWindowRgn((HRGN)rgn2.m_hObject,1);像上面那样,2个区域或起来,就成了上面半圆下面方的形状的窗了. 这个我个人认为不难15楼的说的就是一个方法至于拖动,OnMouseMove里的point的x y坐标值和点击下去的坐标值进行偏移量计算然后获得需要移动的窗口的rect,在进行movewindow就可以了 用setWindowRgn可以实现,首先要创建一个非规则的RGN WebBrowser Control隐藏 显示 求助 SetActiveView没效果? 请教像鱼鱼天气秀这些桌面插件是用什么技术手段实现的? 关于改变鼠标形状的问题 文本框绑定long型变量在别的类中调用的问题 一个int型的1,如何转换成“00000001”(八位)形式的字符串(CString)? 使用CEvent类出问题了 关于窗体图标的简单问题! 请教关于vc开发数据库的学习.希望大家多给点意见. 要让静态控件,其大小正好包围里面的文字,应该怎么办? 请问comctl32.dll 6.0 combox 下拉列表框高度怎么修改 一条简单的SQL语句,请大家赐教!
首先你要对你的那些图形组件设计一种合理的数据结构。假定,叫Component类,那么要能自我绘制,同时还要具备和其他图形边界检查的能力。这些类的对象,还要能相互组合,成为一个新对象。总之首先你要做好设计一种适合表达你的程序的模型。有点麻烦就是。
先加一个响应WM_CREATE的
在OnCreate中加入 CRgn rgn;
rgn.CreateEllipticRgn(0,0,500,500);
SetWindowRgn((HRGN)rgn.m_hObject,1);这样我们做出来的,就是在这个 0,0,500,500 圆里的窗口了.要做什么棱形,上面是椭圆,下面是矩形的,楼主就要先看看CRgn 的用法,建几个形状,大家做逻辑包含的运算,最后得出你要的CRgn结果.
再把该 CRgn 设入你的窗里,就成为了各种形状的窗口了
CRgn rgn1;
rgn1.CreateEllipticRgn(0,0,500,500);
CRgn rgn2;
rgn2.CreateRectRgn(0,200,500,500);
rgn2.CombineRgn(&rgn1,&rgn2,RGN_OR); //上面半圆下面方,或起来
SetWindowRgn((HRGN)rgn2.m_hObject,1);
像上面那样,2个区域或起来,就成了上面半圆下面方的形状的窗了.
15楼的说的就是一个方法至于拖动,OnMouseMove里的point的x y坐标值和点击下去的坐标值进行偏移量计算
然后获得需要移动的窗口的rect,在进行movewindow就可以了