mfc CRgn 画椭圆对话框
来源:互联网 发布:php ini set 不起作用 编辑:程序博客网 时间:2024/05/14 06:50
如何使用CRgn 画出圆形对话框
环境:Window mfc
语言:C++
基本思路是:
法一:实例化两个CRgn,一个用来创建矩形(CreateRectRgn()),一个用来创建圆形(CreateEllipticRgn())。然后通过函数(CombineRgn())合并两个区域。
法二:使用一个CRgn rox; 直接画圆CreateEllipticRgn();
代码直接加入函数初始化函数中(OnInitDialog())即可。创建的圆形对话框中也可以添加一些按钮或者其他东西。我是准备在它里面贴一张圆形的按钮图像。。(mfc做什么都不容易)
法一:
CRgn rgn;
rgn.CreateRectRgn(0,0,120,120); //画出方框
CRgn rox;
rox.CreateEllipticRgn(0,0,120,120); //画出圆形
rox.CombineRgn(&rgn,&rox,RGN_AND); //两个区域重叠,其中第三个参数是负责划分两个区域的合并关系。有RGn_Copy、Rgn_diff等。
rgn.DeleteObject(); //删除方框的object
SetWindowRgn((HRGN)rox, TRUE); //设置窗口为这个rox。
//由于我用这个圆形对话框的时候,创建完毕之后还需要将它置于最顶层。故顺便加了这句代码。其中m_DlgWindow是圆形对话框的实例。
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
法二:
//仔细琢磨了一下,突然发现其实不用实例化两个CRgn;单个的CRgn就可以直接画图了。
CRgn rox;
rox.CreateFllipticRgn(0,0,120,120); //创建椭圆的函数。参数为左上角x,y坐标,和右下角x,y坐标。
rox.deleteobject();
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
- mfc CRgn 画椭圆对话框
- 用MFC画椭圆
- 如何用MFC画椭圆
- 1.2.4 MFC中使对话框变成圆角矩形、椭圆的代码
- The study of Programming Windows with MFC--CRgn
- C++/MFC-GDI绘图之CRgn区域,CFile
- VC/MFC动态画线,画圆,画椭圆,画矩形
- MFC动态画线,画圆,画椭圆,画矩形
- VC/MFC动态画线,画圆,画椭圆,画矩形
- MFC 椭圆窗体的实现
- MFC椭圆扩大与缩小
- MFC绘制矩形、椭圆、三角形
- MFC绘制矩形、椭圆、三角形
- MFC对话框
- mfc 对话框
- MFC对话框
- MFC对话框
- MFC对话框
- iOS objection 依赖注入
- git修改ssh默认端口号
- Lucene的评分(score)机制的简单解释
- Spring MVC
- spring-对线程池的支持
- mfc CRgn 画椭圆对话框
- C# 中普通类、抽象类、接口之间的区别
- 关于TextWatcher编辑框监听器的参数问题
- 使用SIPP来进行SIP压力测试(一)
- 远程服务器上传文件
- Java中 Class.getSimpleName()的作用
- 国外博士论文下载~
- 字符流与字节流的转换
- 公钥,私钥,证书