首页 > 其他分享 >GDI-CombineRgn将两个区域组合为一个新区域

GDI-CombineRgn将两个区域组合为一个新区域

时间:2023-05-15 13:22:30浏览次数:37  
标签:HRGN 句柄 区域 hdc CombineRgn GDI RGN hbr

 

    HRGN hrgn1 = CreateRectRgn(10, 10, 100, 100);//创建矩形区域
    HRGN hrgn2 = CreateEllipticRgn(150, 150, 250, 250);//创建椭圆区域
    HRGN hrgn= CreateRectRgn(0, 0, 0, 0);
    
    int n1=::CombineRgn(hrgn, hrgn1, hrgn2, RGN_OR);  //将两个区域组合为一个新区域
    /*
    参数1:HRGN hrgnDest   目标区域句柄
    参数2:HRGN hrgnSrc1   源区域1句柄
    参数3:HRGN hrgnSrc2   源区域2句柄
    参数4:int fnCombineMode  两个源句柄的组合方式标志
            RGN_AND=1  区域交集
            RGN_COPY=5 将源区域1复制给目标区域
            RGN_DIFF=4 求不在源区域2的源区域1
            RGN_OR=2    区域并集
            RGN_XOR=3  区域的异或,即去除两个源区域重叠的部分
    返回值:NULLREGION=1 空区域
            SIMPLEREGION=2 简单矩形区域
            COMPLEXREGION=3 复杂的区域,不是简单的矩形
            ERROR=0 根本就没有创建目标区域,失败了
    */


    

    HDC hdc = ::GetDC(m_hWnd);
    int n = SelectClipRgn(hdc, hrgn);//选择剪切区域


    RECT rect1 = { 10,10,400,400 };
    HBRUSH hbr;
    hbr = CreateSolidBrush(RGB(255, 0, 0));
    SelectObject(hdc, hbr);
    FillRect(hdc, &rect1, hbr);//填充矩形

    DeleteObject(hbr);
    DeleteObject(hrgn);
    ::ReleaseDC(m_hWnd, hdc);

 

 

 

 

标签:HRGN,句柄,区域,hdc,CombineRgn,GDI,RGN,hbr
From: https://www.cnblogs.com/liming19680104/p/17401571.html

相关文章

  • 电动汽车充电站选址定容Matlab程序代码实现。 在一定区域内
    电动汽车充电站选址定容Matlab程序代码实现。在一定区域内的电动汽车充电站多目标规划选址定容的Matlab程序使用PSO和Voronoi图联合求解。ID:95200670968155421......
  • GDI-InvalidateRect使客户区矩形区域的图形变得无效
     RECTrect;::GetClientRect(m_hWnd,&rect);//获取窗口客户区的坐标BOOLb=::InvalidateRect(m_hWnd,&rect,TRUE);//使客户区矩形区域的图形变得无效/*使原来画的图像无效参数1:HWNDhWnd窗口句柄如果为NULL,则系统将在函数返......
  • ExtCreateRegion - 区域变换
    相似函数:SetWorldTransform本例效果图:代码文件:unitUnit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms, Dialogs,StdCtrls,ExtCtrls;type TForm1=class(TForm)  RadioGroup1:TRadioGroup;  pro......
  • Gdiplus::Graphics::DrawString绘制文字
     Gdiplus::FontFamilyfontfm(_T("微软雅黑"));Gdiplus::Fontfont(&fontfm,24,Gdiplus::FontStyleBold,Gdiplus::UnitPixel);/*参数1:FontFamilyfamily字体,如我们常见的“宋体”、“仿宋”、“微软雅黑”、“Arial”等参数2:floatemSize......
  • 经纬恒润新产品系列 | 物理区域控制单元助推汽车域控新架构发展
        随着汽车芯片计算能力的提升,汽车电子产品正从分布式向中央计算及物理区域控制方向发展。国内多数主流OEM新一代E/E架构,采用物理区域控制单元实现区域智能传感器执行器配电、网关路由、信号采集以及执行器的控制。    经纬恒润基于20年汽车电子产品研发和配套经......
  • react echarts tooltip 区域新加一个输入框,可以编辑保存数据
     //demo页面//需求:产品要求在折线图的tooltip上新加一个输入框,可以编辑这个输入框保存备注信息,需要两种交互方式:1.鼠标滑过展示备注信息。2.鼠标点击某一个日期时,鼠标可以滑到tooltip上做保存/编辑操作。//思路:1.保留初始鼠标滑过echarts图效果。//2.主要难点是点击时to......
  • 获取鼠标位置和控件区域
    procedureTForm1.scSplitView1MouseEnter(Sender:TObject);beginifscSplitView1.OpenedthenExit;scSplitView1.Opened:=True;Label1.Visible:=True;Label2.Visible:=True;end;procedureTForm1.scSplitView1MouseLeave(Sender:TObject);varP:TPoin......
  • 浅析危险区域闯入报警系统助力工地安全生产与智能化监管
    一、行业背景施工现场人员管理难度大、临时员工多,目前在工地第一线作业的工人中,农民工约占50%-70%,有的工地高达95%,没有受过专业的培训,对危险隐患意识不强,实时监控难实现。管理人员不可能7*24小时盯着监控屏幕,在安全监管中很容易出现疲惫、注意力集中等情况。建筑现场监控不能实时......
  • Linux基础19 Gdisk, 挂载命令mount与配置文件, fstab文件的详细信息, Swap介绍与案例,
    gdiskgdisk分区,分区表是GPT,支持更大的容量分区。128个。#需要安装[root@oldboy~]#yuminstall-ygdisk 1.添加硬盘,3TB在vmware里面添加2.查看是否能识别出来。[root@oldboy~]#lsblkNAMEMAJ:MINRMSIZEROTYPEMOUNTPOINTsda8:0050G0disk......
  • HammingDistance
    汉明距离implementation'org.apache.commons:commons-text:1.10.0'Thehammingdistancebetweentwostringsofequallengthisthenumberofpositionsatwhichthecorrespondingsymbolsaredifferent.ForfurtherexplanationabouttheHammingDistan......