Windows程序设计:矩形

Windows中Rect是一个结构体
typedef struct tagRECT
{
    LONG    left;    //左上角
    LONG    top;      
    LONG    right;   //右下角
    LONG    bottom;
} RECT, *PRECT, NEAR *NPRECT, FAR *LPRECT;

有关矩形的函数
(1)矩形的绘制:
FillRect() 用画刷填充一个矩形
int FillRect(
  _In_       HDC    hDC,
  _In_ const RECT   *lprc,
  _In_       HBRUSH hbr
);
具体应用:
HBRUSH hBrush = CreateSolidBrush(RGB(255,0,0));

FillRect(hdc, &rect, hBrush);  //填充


矩形描边:
HBRUSH hBrush = CreateSolidBrush(RGB(255, 0, 0));

FrameRect(hdc, &rect, hBrush);  //描边


矩形的放大缩小:
HBRUSH hBrush = CreateSolidBrush(RGB(255, 0, 0));

InflateRect(&rect, 100, 100);  //正数为放大,负数为缩小
			

矩形的平移:
HBRUSH hBrush = CreateSolidBrush(RGB(255, 0, 0));

OffsetRect(&rect, 300, 100);   //平移按照MM——TEXT模式

矩形的复制:
CopyRect(&rect2, &rect);   //将rect矩形复制给rect2矩形

矩形的相交部分:
IntersectRect(&rect3, &rect2, &rect);  //rect3为矩形rect和rect2的相交部分

矩形的合并
UnionRect(&rect3, &rect2, &rect);  //将矩形rect2和rect矩形合并成大矩形赋给rect3

矩形颜色反转:
InvertRect(hdc, &rect);  //例如黑色变白色,白色变黑色

判断点是否在矩形内:
BOOL PtInRect(
  _In_ const RECT  *lprc,  //矩形区域
  _In_       POINT pt   //当前点
);

例子:判断鼠标是否点击矩形
case WM_LBUTTONDOWN:
	{
		pt.x = LOWORD(lParam);   //当前鼠标位置
		pt.y = HIWORD(lParam);   //当前鼠标位置
		if (PtInRect(&rect, pt)) {   //点击检测函数
			MessageBox(hWnd, TEXT("click!"),TEXT("OK"),MB_OK);
		}

	}break;

判断矩形是否为空矩形:
IsRectEmpty(&rect3);  //返回BOOL值


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值