区域类CRgn

CRgn绘制扇形并响应鼠标move 在VC6中使用CRgn类提供的方法实现。 1)利用CreateFromPath从绘制的路径中创建扇形区域。 2)利用CombineRgn对两个扇形区域进行与操作。 3)使用PtInRegion实现鼠标在扇形区域中的响应。 BOOL CPolyRGNDlg::OnInitDialog(){ bsh.CreateSolidBrush(RGB(255,0,0)); C 阅读详情

CRgn类封装了图形设备接口的区域,他能够实现对与区域的很多操作。

class CRgn : pulbic CGdiobject

有一个公共的构造函数CRgn::CRgn

包含的公共方法:

CRgn::CombineRgn

设置 CRgn 对象,以便使用两个指定的 CRgn 对象联合等效。

CRgn::CopyRgn

设置 CRgn 对象,以便为指定的 CRgn 对象的副本。

CRgn::CreateEllipticRgn

初始化一个省略区域的一 CRgn 对象。

CRgn::CreateEllipticRgnIndirect

初始化 RECT 结构定义一个省略区域的一 CRgn 对象。

CRgn::CreateFromData

创建从特定区域和转换数据的区域。

CRgn::CreateFromPath

创建从中选择到特定设备上下文的路径的区域。

CRgn::CreatePolygonRgn

初始化多边形区域的一 CRgn 对象。 该系统通过绘制线条如果需要,自动闭合多边形,从最后一个顶点到第一。

CRgn::CreatePolyPolygonRgn

初始化包含一系列的闭合多边形的区域的一 CRgn 对象。 多边形可能是相交,也能重叠。

CRgn::CreateRectRgn

初始化一个矩形区域的一 CRgn 对象。

CRgn::CreateRectRgnIndirect

初始化 RECT 结构定义的矩形区域的一 CRgn 对象。

CRgn::CreateRoundRectRgn

初始化一个矩形区域的一 CRgn 对象带圆角。

CRgn::EqualRgn

检查两 CRgn 对象以确定它们是否等效。

CRgn::FromHandle

返回指向 CRgn 对象,同时使处理Windows区域。

CRgn::GetRegionData

用描述给定区域的数据填充指定的缓冲区。

CRgn::GetRgnBox

检索 CRgn 对象的边框的坐标。

CRgn::OffsetRgn

按指定的偏移量移动 CRgn 对象。

CRgn::PtInRegion

确定指定的点是否位于该区域。

CRgn::RectInRegion

确定一个指定矩形的任何部分是否在该区域的范围内。

CRgn::SetRectRgn

设置到指定的矩形区域的 CRgn 对象。

6y4t32t5.collapse_all(zh-cn,VS.120).gif公共运算符

名称

说明

CRgn::operator HRGN

返回在 CRgn 对象包含的Windows句柄。


目前,我所用到了两个其中两个函数

第一个是创建多边形区域的CreatePolygonRgn函数,其原型如下:
BOOL CreatePolygonRgn(
  LPPOINT lpPoints,其中起一个参数是点类CPoint的对象或Point结构体对象,一般都为对象数组
  int nCount,多边形的点数即在CPoint对象的个数
  int nMode //模式,可选ALTERNATE或WINDING两个
);

   创建完之后,需要使用Deleteobject进行删除。直接使用此函数来创建多边形比使用MoveTo和LineTo方便,而且可以方便的对多边形区域进行下一步的填充

填充颜色的话,使用的是CDC类中的FillRgn()函数,一下是该函数的原型

BOOL FillRgn(
    CRgn* pRgn,//区域对象的指针
  CBrush* pBrush //画刷
);

第二个函数是创建一个省略区域,其中四个参数分别为区域的左上角的坐标和右下角的坐标。

BOOL CreateEllipticRgn(
    int x1,
    int y1,
   int x2,
   int y2 
);

CRgn绘制扇形区域 在VC6中使用CRgn类提供的方法实现。 1)利用CreateFromPath从绘制的路径中创建扇形区域。 2)利用CombineRgn对两个扇形区域进行与操作。 3)使用PtInRegion实现鼠标在扇形区域中的响应。 立即下载

相关推荐

使用 createpolygonrgn 和 setwindowregion 来创建一个“稀奇古怪”的可以动窗口(3KB)...

使用 createpolygonrgn 和 setwindowregion 来创建一个“稀奇古怪”的可以动窗口(3KB)

关于CRgn类

CRgn类是CGdiObject的一个派生类 一)关于CRgn对象创建 ps:CRgn类的构造函数只有一个,定义一个CRgn对象后,必须调用初始化函数进行初始化才能使用。 A:初始化矩形区域 BOOL   CreateRectRgn(int x1,int y1,int x2,int y2); BOOL   CreateRectRgnIndirect(LPCRECT lpRect); B

gxl的专栏 2595

STM32 HAL 模拟I2C从机实战:软件实现与多设备通信优化

本文详细介绍了STM32 HAL库下软件模拟I2C从机的实现方法,包括GPIO开漏配置、基础信号实现、数据收发函数编写和多设备通信优化策略。通过灵活的软件模拟方案,解决了硬件I2C接口数量限制和稳定性问题,为多传感器数据采集等应用提供了可靠的通信保障。

motor的博客 918

MFC第二十六天 CRgn类简介与开发、封装CMemoryDC类并应用开发

CRgn类是MFC(Microsoft Foundation Classes)中的一个图形区域类。该类用于创建和操作图形区域,可以表示各种形状的区域,如矩形、椭圆、多边形等。public :// 封装的特点是没有使用Overload重载函数,结构体就是XXXIndirect CRgn();//创建矩形区域 BOOL CreateRectRgn(int x1 , int y1 , int x2 , int y2);

Jcrry的博客 2175

一种基于因果干预的少样本学习的故障诊断模型

本文提出CIRNet,一种融合元学习与因果干预的少样本故障诊断框架。针对传统方法易学习伪相关特征的问题,CIRNet通过构建结构因果模型,采用类级和特征级双调整策略消除先验知识干扰。实验在多个轴承/齿轮数据集上验证其有效性,在跨组件任务中准确率最高达93.41%,特征可视化显示更好的类可分性。相比现有方法,CIRNet显著提升了模型泛化能力和可解释性。

hasakie的博客 956

Grok 3国内怎么用?超详细使用指南+实用指令模板

主要是用于快速分析学术论文,提取关键信息,总结研究成果。Analyze the following research paper: [粘贴或上传论文内容]1. Extract key findings, methodologies, and conclusions. (提取主要发现、方法和结论。2. Identify statistical significance and data points. (识别统计显著性和数据点。

Survivor_sl的博客 1万+

Windows 中不规则窗体的编程实现

Windows 中不规则窗体的编程实现作者:上海伟功通信 roc 下载源代码一、序言  在绝大多数的Windows应用程序中,其窗体都是使用的正规正矩的矩形窗体,例如我们常用的,“记事本”,“扫雷”,等等。矩形窗体,具有编程实现简单,风格简洁的优点,所以在普通文档应用程序和简单小游戏中

973

第1关:STL模板之queue实例一:最少个数

头歌自创答案

xiyunSacire的博客 819

C++/MFC-GDI绘图之CRgn区域,CFile

一、常用成员函数 CRgn类成员函数 CreateRectRgn 创建一个矩形区域来初始化对象 CreateRectRgnIndirect 创建一个矩形区域来初始化对象参数是一个RECT结构地址 CreateEllipticRgn 创建一个椭圆区域来初始化对象 CreateEllipticRgn

学前班的博客 9283

10天冲刺国自然基金!用这套实战AI提示词指令教程,助你中标率翻倍!亲测DeepSeek和ChatGPT不好用

虽然以上国自然提示词指令经过反复实测,但并不是万能无脑帮你搞定所有,大模型AI的特性是你专业领域能力越强,它的智商表现就会更加强大,通过以上提示词教程的使用,大大提升中标概率是肯定的。还有就是大模型的使用上,不是市面上大家都说好的就一定适用,目前来看,Gemini和Claude的两个模型是非常适合国自然本子的修改的。在使用大模型进行国自然本子撰写修改时,首先是角色的设定,然后是目标和背景的描述,好用的提示词指令都是要经过无数次的实测,比对输出结果后又反复调整,达到最佳的效果状态的提示词指令。

智能AI让学术科研更容易 1247

【OpenClaw从入门到精通】第15篇:国产芯片适配实战——昇腾/龙芯/天数智芯全流程跑通(2026实测版)

2026年国产芯片AI适配迎来爆发期,OpenClaw作为轻量化本地AI智能体,已实现华为昇腾、龙芯、天数智芯等主流国产平台的全流程适配。本文基于实测数据,从背景解析、核心原理、算法优化、实操部署四个维度,详细讲解OpenClaw在香橙派昇腾开发板、龙芯3B6000M、天数彤央TY1200及联想开天X7h的部署流程,同时提供统一工具玄武CLI的使用指南。文中包含完整代码、执行结果、避坑技巧及虚拟实战案例,兼顾新手入门与进阶提升,帮助读者快速掌握国产芯片上的本地AI部署能力,实现数据隐私保护与低成本AI落地。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1008

详细介绍CRgn类

书籍:《Visual C++ 2017从入门到精通》的4.2环境:visual studio 2022内容:[例 4.3]制作图片按钮说明:以上内容大部分来自腾讯元宝。

felicity_one的博客 1025

优化算法 | 赏金猎人优化算法(Bounty Hunter Optimizer, BHO)及其在多无人机移动边缘计算与路径规划中的应用(附matlab源代码)

移动边缘计算(Mobile Edge Computing, MEC)通过将计算资源下沉至网络边缘,有效解决了物联网终端设备计算能力不足与能耗受限的问题。无人机(Unmanned Aerial Vehicle, UAV)因其高机动性、灵活部署和广域覆盖等优势,被广泛用作MEC的移动服务器平台。多无人机辅助MEC系统的核心优化问题在于:如何在满足任务处理时延约束和无人机能量限制的前提下,联合优化无人机的三维飞行轨迹、任务卸载决策与计算资源分配,以最小化系统总能耗或最大化任务完成效率。

尘世冰封的专栏 224

GDI处理图片透明(使用区域类CRgn实现)

GDI全称图形设备接口,没什么好介绍的,自己去百度,下面我要做的是如何使用GDI去将一张图片的部分处理成透明。 待处理的图片: 将该图片下载下来或者你自己有其他的bitmap也行,首先用vs(本例用的是vs2017)创建一个win32的默认工程。删除其他代码,只保留包含的头文件和入口函数wWinMain,结果如下图: 然后工程切换至资源视图,鼠标右键-》添加资源-》选择Dialog-...

qq_29724075的博客 962

华为OD机试双机位C卷-用户入网定期复评(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【用户入网定期复评】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【用户入网定期复评】。

qq_45776114的博客 839

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MFC GID 六大对象学习(CPen画笔类,CBrush画刷类,CFont字体类,CBitmap位图类,CRgn区域类)

CFont 的相关结构体LOGFONT :使用方法。1.CPen画笔类,对应结构体LOGPEN,4.CBitmap位图类,2.CBrush画刷类,3.CFont字体类,

weixin_46513031的博客 452

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

7、GDI对象之区域Rgn

CRgn类 CRgn::CreateEllipticRgn(int x,int y,int Height,int Width); //创建一个椭圆形区域 CRgn::CreateEllipticRgnIndirect(CRect rect); //创建一个椭圆形区域 CRgn::CreateRectRgn(int x,int y,int Height,int Width); /...

qq_38611124的博客 711

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

CRgn::CreateEllipticRgn

CRgn类: 该类封装了各种图像区域构造及其操作函数,通常可以用来进行区域的裁剪。 CRgn::CreateEllipticRgnIndirect(CRect crect),可直接在该矩形框内裁剪出一个椭圆。 CRgn::CreateEllipticRgn(int x1,int y1,int x2,int y2),与上面类似,只不过多边形区域由点坐标给出。 与椭圆相类似,CRgn还

逍遥.张的博客 931

CRgn类和SetWindowRgn()函数实现不规则的窗口

1 创建一个不规则窗口的过程是:首先定义一个CRgn类,并用各种初始化函数创建CRgn类的具体区域 2然后调用CWnd::SetWindowRgn()函数创建不规则窗口。 CRgn用来确定一个多边形、椭圆或者由多边形及椭圆合成的范围,在程序中主要会用到CreateRectRgnIndirect()CreateEllipticRgnIndire...

weixin_33862041的博客 244

windows绘图-区域CRgn

MFC区域 CRgn 概念简介: 区域是一个抽象的概念,它也是绘图对象,但它并不像画笔,画刷那样好理解,我的理解是:它是一个长方形或者椭圆或者其他多边形的一个图像显示的集合。它最大的特点是区域之间可以进行逻辑运算,就像数学中集合之间的运算一样(与或非等)。区域进行逻辑运算之后再进行显示,可以出现特殊的效果。 使用步骤:    2.1 创建区域      CreateRectRgn   

Barry的博客 1万+

如何创建不规则窗口

VC++中提供了CRgn类和SetWindowRgn函数来创建别具一格的窗口。创建一个新窗口首先要定义一个CRgn对象,并用各种初始化函数创建CRgn类的区域,然后调用CWnd:: SetWindowRgn函数创建不规则窗口。CRgn类是从CGdiObject类派生二来的子类,CRgn类用来确定一个多边形、椭圆形或由多边形和椭圆合成的图形范围。CRgn类有三个比较常用的成员函数。1、Cre

harkorb的专栏 1098

VC不规则窗口实现—位图区域裁剪

既然默认创建的窗口是矩形区域,只要把不想显示的区域透明化,剩下的不就是不规则窗口了吗?!接下来所谓的窗口透明化,我们直接使用CRgn类来实现创建、裁剪和合并区域的功能,然后再使用SetWindowRgn函数来进行整个窗体的区域绘制。     不规则窗口,顾名思义,就是窗口的形状不是长方形、正方形或者圆形,而是一些不规则的图形。例如我们常常看到的一些可设置皮肤的窗口,机器人形状,五角星图形窗口一样等等

沉森心与思考同行 2240

使用CRgn::CombineRgn判断两个区域是否有共同的覆盖区域

BOOL CheckAreaOverlap(POINT *ptArray1, const int ptNum1, //区域1坐标点 坐标点数量 POINT *ptArray2, const int ptNum2) //区域2坐标点 坐标点数量 { CRgn rgn1, rgn2; if(rgn1.CreatePolygonRgn(ptAr

zgl7903的专栏 1751

About the class Crgn

 The CRgn class  used to to encapsulate a Windows graphics device interface (GDI) region for program unregulate windows .   Construction

文章转贴 1205

windows应用开发由浅入深(三)有关不规则窗口

相关类: 1、CRgn:Encapsulates a Windows graphics device interface (GDI) region.即、CRgn表示一个GDI封装区 MSDN描述: A region is an elliptical or polygonal area within a window. To use regions, you use the member

Jimmy的小黑屋 1028

mfc CRgn 画椭圆对话框

如何使用CRgn 画出圆形对话框 环境:Window mfc 语言:C++ 基本思路是: 法一:实例化两个CRgn,一个用来创建矩形(CreateRectRgn()),一个用来创建圆形(CreateEllipticRgn())。然后通过函数(CombineRgn())合并两个区域。 法二:使用一个CRgn rox; 直接画圆CreateEllipticRgn(); 代码直接加入

没有蛀牙lm的博客 1891
上一篇: MFC如何避免闪烁
下一篇: 数字时钟程序总结
blueamber
博客等级 码龄16年 65粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值