首页 > 其他分享 >GDI-IntersectClipRect创建一个新的剪裁区域,他是前一个剪裁区域与一个矩形的交集

GDI-IntersectClipRect创建一个新的剪裁区域,他是前一个剪裁区域与一个矩形的交集

时间:2023-05-16 17:55:44浏览次数:43  
标签:剪切 int 区域 hdc IntersectClipRect GDI 矩形 剪裁

 

    
    HRGN hrgn1 = CreateRectRgn(10, 10, 200, 200);//创建矩形区域
    HDC hdc = ::GetDC(m_hWnd);
    int n = SelectClipRgn(hdc, hrgn1);//选择剪切区域
        
    int n1=::IntersectClipRect(hdc, 100, 100, 300,300);  //创建一个新的剪裁区域,他是前一个剪裁区域与一个矩形的交集
    /*
    参数1:HDC hdc  设备环境句柄
    参数2:int  定义了矩形区域左上角的逻辑X坐标
    参数3:int  定义了矩形区域左上角的逻辑Y坐标
    参数4:int  定义了矩形区域右下角的逻辑X坐标
    参数5:int  定义了矩形区域右下角的逻辑Y坐标
    返回值:该返回值表明了新的剪切区域的复杂度,它可是如下几种形式:
            NULLREGION:剪切区域为空;
            SIMPLEREGION:剪切区域是单个矩形;
            COMPIEXREGION:剪切区域有多个矩形;
            ERROR:剪切区域创建失败
    注释:矩形的底边和右边并不排除在剪切区域之外
    */

    HRGN hrgn = CreateRectRgn(10, 10, 400, 400);//创建矩形区域
    HBRUSH hbr = CreateSolidBrush(RGB(0, 0, 255));    //单色的画刷
    FillRgn(hdc, hrgn, hbr); //用画刷填充区域

    
    ::ReleaseDC(m_hWnd, hdc);

 

 

 

 

标签:剪切,int,区域,hdc,IntersectClipRect,GDI,矩形,剪裁
From: https://www.cnblogs.com/liming19680104/p/17406398.html

相关文章

  • GDI-ExcludeClipRect创建一个新的剪辑区域,该区域由现有剪辑区域减去指定的矩形组成
     HRGNhrgn1=CreateRectRgn(10,10,300,300);//创建矩形区域HDChdc=::GetDC(m_hWnd);intn=SelectClipRgn(hdc,hrgn1);//选择剪切区域intn1=::ExcludeClipRect(hdc,200,200,300,300);//创建一个新的剪辑区域,该区域由现有剪......
  • GDI-PaintRgn用HDC中的当前画刷填充区域
     HRGNhrgn1=CreateRectRgn(10,10,100,100);//创建矩形区域HRGNhrgn2=CreateEllipticRgn(150,150,250,250);//创建椭圆区域HRGNhrgn=CreateRectRgn(0,0,0,0);intn1=::CombineRgn(hrgn,hrgn1,hrgn2,RGN_OR);//将两个区域组合为......
  • dotnet6 项目在Docker部署报错 The type initializer for 'Gdip' threw an exception.
    asp.netcore部署在docker中,使用了System.Drawing.Common包,在容器中使用时报错“Thetypeinitializerfor'Gdip'threwanexception.”原因:因为System.Drawing.Common在跨平台的兼容性不够理想,官方设置为后续版本只能在Windows平台使用,默认是不开启的,需要在运行时配置中开启......
  • GDI-FillRgn用画刷填充区域
     HRGNhrgn1=CreateRectRgn(10,10,100,100);//创建矩形区域HRGNhrgn2=CreateEllipticRgn(150,150,250,250);//创建椭圆区域HRGNhrgn=CreateRectRgn(0,0,0,0);intn1=::CombineRgn(hrgn,hrgn1,hrgn2,RGN_OR);//将两个区域组......
  • GDI-CombineRgn将两个区域组合为一个新区域
     HRGNhrgn1=CreateRectRgn(10,10,100,100);//创建矩形区域HRGNhrgn2=CreateEllipticRgn(150,150,250,250);//创建椭圆区域HRGNhrgn=CreateRectRgn(0,0,0,0);intn1=::CombineRgn(hrgn,hrgn1,hrgn2,RGN_OR);//将两个区域组合为......
  • GDI-InvalidateRect使客户区矩形区域的图形变得无效
     RECTrect;::GetClientRect(m_hWnd,&rect);//获取窗口客户区的坐标BOOLb=::InvalidateRect(m_hWnd,&rect,TRUE);//使客户区矩形区域的图形变得无效/*使原来画的图像无效参数1:HWNDhWnd窗口句柄如果为NULL,则系统将在函数返......
  • Gdiplus::Graphics::DrawString绘制文字
     Gdiplus::FontFamilyfontfm(_T("微软雅黑"));Gdiplus::Fontfont(&fontfm,24,Gdiplus::FontStyleBold,Gdiplus::UnitPixel);/*参数1:FontFamilyfamily字体,如我们常见的“宋体”、“仿宋”、“微软雅黑”、“Arial”等参数2:floatemSize......
  • 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......
  • MFC-GDI+
           ......