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

发布时间 2023-05-16 17:54:10作者: 天子骄龙

 

    
    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);