zoukankan      html  css  js  c++  java
  • RECT矩形

    矩形结构的原型:

    1 typedef struct tagRECT
    2 {
    3     LONG    left;
    4     LONG    top;
    5     LONG    right;
    6     LONG    bottom;
    7 } RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;
    RECT定义

    设置RECT变量的三种方法:

    1、

    RECT rect = {100,100, 300,200};

    2、注意这里的坐标系统,并不是左右配对,上下配对。

    RECT rect;
    
    rect.left = 100;
    rect.top = 100;
    rect.right = 200;
    rect.bottom = 200;

    3、掉用SetRect函数:

    SetRect(
        _Out_ LPRECT lprc,
        _In_ int xLeft,
        _In_ int yTop,
        _In_ int xRight,
        _In_ int yBottom);
    SetRect定义

     FillRect函数:通过掉用RECT类型变量和一个画刷句柄画出一个矩形。

    FillRect(
        _In_ HDC hDC,
        _In_ CONST RECT *lprc,
        _In_ HBRUSH hbr);
    FillRect定义

    InvertRect函数:颜色反转,将矩形的颜色反转

    InvertRect(
        _In_ HDC hDC,
        _In_ CONST RECT *lprc);
    InvertRect定义

    InflateRect函数:放大和缩小矩形,当x与y轴为正的时候是放大,当x写y轴为负的时候为缩小

    InflateRect(
        _Inout_ LPRECT lprc,
        _In_ int dx,
        _In_ int dy);
    InflateRect定义

     OffsetRect函数:偏移矩形,注意该函数一定要在FillRect和FrameRect函数前使用否则无效。

    OffsetRect(
        _Inout_ LPRECT lprc,
        _In_ int dx,
        _In_ int dy);
    OffsetRect定义

    FrameRect函数:画矩形边框,也必须要一个RECT变量和画刷句柄。

    FrameRect(
        _In_ HDC hDC,
        _In_ CONST RECT *lprc,
        _In_ HBRUSH hbr);
    FrameRect定义

    CopyRect函数:将第二个RECT类型的变量拷贝到第一个RECT变量中

    CopyRect(
        _Out_ LPRECT lprcDst,
        _In_ CONST RECT *lprcSrc);
    CopyRect定义

     IntersectRect函数:取得两个矩形中间相交的矩形

    IntersectRect(
        _Out_ LPRECT lprcDst,
        _In_ CONST RECT *lprcSrc1,
        _In_ CONST RECT *lprcSrc2);
    IntersectRect定义

    IntersectRect(&rect3, &rect1, &rect2);

    UnionRect函数:合并两个矩形

    UnionRect(
        _Out_ LPRECT lprcDst,
        _In_ CONST RECT *lprcSrc1,
        _In_ CONST RECT *lprcSrc2);
    UnionRect定义

     UnionRect(&rect3,&rect,&rect2);  通过rect1和rect2得到rect3

    SetRectEmpty函数:将矩形lpRect设为一个空矩形(所有字段都为空)

    1 SetRectEmpty(
    2     _Out_ LPRECT lprc);
    SetRectEmpty定义

    IsRectEmpty函数:判断一个矩形是否为空

    IsRectEmpty(
        _In_ CONST RECT *lprc);
    IsRectEmpty定义

    FillRect函数:判断鼠标是否在矩形中

    PtInRect(
        _In_ CONST RECT *lprc,
        _In_ POINT pt);
    PtInRect定义

    实例

    RECT rect = {0,0, 100,100};
    
    case WM_LBUTTONDOWN:
            POINT apt;
            apt.x = LOWORD(lParam);
            apt.y = HIWORD(lParam);
    
            if(PtInRect(&rect, apt))
            {
                MessageBox(hWnd, TEXT("在矩形上!"), TEXT("消息"), MB_OK);
            }
            else
            {
                MessageBox(hWnd, TEXT("不在矩形上!"), TEXT("消息"), MB_OK);
            }
            break;
  • 相关阅读:
    vue多个自定义组件动态显示
    vue弹出多个弹框,并可以拖动弹框
    localStorage和sessionStorage
    Sharepoint ListTemplateId
    SharePoint 上传文档太大 无法上传
    Stream Byte[] 转换
    C#转义字符 单引号 双引号 换行 回车 斜杠
    c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存
    SharePoint Content Type ID's
    Visual Studio Tip: Get Public Key Token for a Strong Named Assembly 添加强命名 获取强命名值
  • 原文地址:https://www.cnblogs.com/2016Study/p/5430517.html
Copyright © 2011-2022 走看看