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;
  • 相关阅读:
    Account group in ERP and its mapping relationship with CRM partner group
    错误消息Number not in interval XXX when downloading
    错误消息Form of address 0001 not designated for organization
    Algorithm类介绍(core)
    梯度下降与随机梯度下降
    反思
    绘图: matplotlib核心剖析
    ORB
    SIFT
    Harris角点
  • 原文地址:https://www.cnblogs.com/2016Study/p/5430517.html
Copyright © 2011-2022 走看看