`
nathan09
  • 浏览: 155418 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

判断点在矩形内!!(MFC)

 
阅读更多
/**//*
CRect::PtInRect

DetermineswhetherthespecifiedpointlieswithinCRect.
*/


BOOLPtInRect(
POINTpoint
)
constthrow();

/**//*
Parameters
point
ContainsaPOINTstructureorCPointobject.

ReturnValue

NonzeroifthepointlieswithinCRect;otherwise0.

Remarks

ApointiswithinCRectifitliesontheleftortopsideoriswithinallfoursides.ApointontherightorbottomsideisoutsideCRect.

Note
Therectanglemustbenormalizedorthisfunctionmayfail.YoucancallNormalizeRecttonormalizetherectanglebeforecallingthisfunction.


Example
*/


CRectrect(
5,5,100,100);
CPointpt1(
35,50);
CPointpt2(
125,298);

//thisistrue,becausept1isinsidetherectangle
ASSERT(rect.PtInRect(pt1));

//thisisNOTtrue,becausept2isoutsidetherectangle
ASSERT(!rect.PtInRect(pt2));

//notethattherightandthebottomaren'tinside
ASSERT(!rect.PtInRect(CPoint(35,100)));
ASSERT(
!rect.PtInRect(CPoint(100,98)));

//butthetopandthe
ASSERT(rect.PtInRect(CPoint(5,65)));
ASSERT(rect.PtInRect(CPoint(
88,5)));

//andthatPtInRect()worksagainstaPOINT,too
POINTpt;
pt.x
=35;
pt.y
=50;
ASSERT(rect.PtInRect(pt));
/*
SeeAlso

Reference
CRectClass
HierarchyChart
CRect::NormalizeRect
PtInRect

OtherResources
CRectMembers
*/
分享到:
评论

相关推荐

    MFC绘制矩形并根据鼠标按下拖动调节大小

    当鼠标左键按下时,检查点击位置是否在矩形内,如果在则设置`m_bDragging`为`true`,并记录鼠标按下时的屏幕坐标。在`WM_MOUSEMOVE`消息中,根据当前鼠标位置更新矩形的大小并重绘。最后,当鼠标左键释放时,`m_...

    mfc 画多个矩形框,可选中任意一个移动、改变大小、删除

    它是MFC提供的一种工具,用于跟踪用户在屏幕上对矩形的操作,如拖动边角进行拉伸或拖动中心点进行移动。`CRectTracker`提供了多种样式,如单向拉伸、双向拉伸等,使得我们可以灵活地调整矩形的形状。 步骤1:初始化...

    MFC画直线圆矩形

    总之,通过MFC和CDC类,我们可以创建一个简单的画板应用,允许用户使用鼠标在屏幕上画直线、圆和矩形。这涉及到了MFC的消息处理、DC操作以及图形绘制等核心概念。通过实践这个项目,开发者可以更深入地理解MFC的窗口...

    tuxing.zip_mfc 画矩形

    如果用户按下了Ctrl键,通常会用到`CRect`的`PtInRect`方法检测鼠标点击是否在已画矩形内,以此判断是否需要开始画新的矩形。同时,程序可能会监听WM_KEYDOWN和WM_KEYUP消息,以便得知Ctrl键的状态变化。 5. **响应...

    矩形分割

    例如,你可以使用CRect的IntersectRect()方法来找到两个矩形的交集,UnionRect()来得到它们的并集,SubtractRect()来剪裁一个矩形以排除另一个矩形,或者PtInRect()来判断一个点是否位于矩形内。 GDI+则提供了更...

    VC判断鼠标是否在按钮区域内

    总结一下,实现“VC判断鼠标是否在按钮区域内”的功能,需要以下步骤: 1. 派生一个自定义按钮类`CMyButton`,继承自`CButton`。 2. 在派生类中添加按钮矩形区域的成员变量,并获取其值。 3. 重写`OnMouseMove`和`...

    MFC任意形状按键的设置

    5. 处理鼠标事件:为了响应用户的鼠标操作,还需要重写OnMouseMove()、OnLButtonDown()、OnLButtonUp()等消息处理函数,以便根据鼠标位置判断是否在按钮形状内,从而正确处理点击和悬停事件。 6. 鼠标光标形状:...

    MFC关于绘图教程

    - `PtInRect`方法判断一个点是否在矩形内; - `SetRect`方法设置矩形的边界; - `OffsetRect`方法移动矩形的位置; - `MoveToXY`方法将矩形移动到指定坐标。 #### 实例:绘制直线和圆形 在MFC中,可以通过`CDC`类...

    MFC自绘按钮,可以方便的改变按钮的背景颜色和文本颜色

    在Windows编程领域,MFC(Microsoft Foundation Classes)是一个基于C++的类库,它为开发者提供了构建Windows应用程序的便利工具。MFC自绘按钮是一种特殊类型的按钮控件,允许程序员自定义按钮的外观,包括背景颜色...

    MFC如何获得指定点的控件指针

    MFC提供了一个成员函数`GetWindowRect`来获取控件的矩形区域,然后你可以用`PtInRect`函数判断点是否在该区域内。 ```cpp CRect rect; GetWindowRect(&rect); if (rect.PtInRect(point)) { // 点在当前控件内,...

    MFC 鼠标按下与弹起事件响应

    此外,MFC中的CPoint类提供了存储二维坐标的方法,CRect类则用于处理矩形区域,它们在处理鼠标位置和控件边界时非常有用。nFlags参数包含关于鼠标按键和修饰键的状态信息,可以用来判断是否有Shift或Ctrl键被按下。 ...

    MFC 多边形的扫描转换

    在这个项目中,我们讨论的是如何在MFC应用中实现多边形的扫描转换,并提供了有无网格显示的选项。 首先,我们需要理解扫描转换的基本原理。扫描转换通常通过边界框检测和扫描线算法来实现。对于一个多边形,我们...

    直线段的裁剪 vc++ MFC

    在MFC程序中,这可能需要创建一个函数,接收直线段的端点坐标和裁剪矩形的边界,然后应用裁剪算法。 6. **单文档结构**:MFC中的单文档(Single Document)模式意味着程序只处理一个文档,通常有一个视图(View)...

    mfc绘图介绍以及各种图形画法

    - **CRect类**:提供了丰富的成员函数和运算符,便于矩形的操作,如获取宽度、高度、中心点,检查矩形是否为空,以及判断点是否在矩形内。 在MFC中绘制图形,通常涉及到以下步骤: 1. **初始化设备上下文(Device...

    MFC控件动态拖动

    本文将深入探讨MFC控件动态拖动的相关知识点,通过实例代码解析如何实现这一功能。 首先,MFC控件动态拖动的核心在于处理WM_LBUTTONDOWN、WM_MOUSEMOVE和WM_LBUTTONUP这三个消息。当用户按下鼠标左键时,会触发WM_...

    MFC画直线,圆,椭圆等等

    在MFC中,可以使用`PtInRegion()`函数判断点是否在一个区域内,但直接判断点是否在多边形内则需要自定义算法,如Ray Casting算法或者Winding Number方法。 总的来说,MFC提供了一系列的图形绘制函数,使得开发者...

    MFC绘图的经典之作

    在IT领域,MFC(Microsoft Foundation Classes)是一个C++库,由微软开发,用于构建Windows应用程序。MFC库封装了Windows API,使得开发者能够更容易地使用面向对象的方式来编写Windows程序。"MFC绘图的经典之作"是...

    MFC绘制能用鼠标移动的椭圆

    在MFC(Microsoft Foundation Classes)框架中,开发一个可以由鼠标点击并移动的椭圆功能涉及到图形用户界面(GUI)编程的基本概念和技术。这个过程主要包括以下几个步骤: 1. **创建SDI(Single Document ...

    mfc中TabControl控件的美化

    在MFC(Microsoft Foundation Class)库中,TabControl控件是一个常用的功能组件,它允许用户通过不同的选项卡来组织和切换界面内容。这个控件在Windows应用程序设计中非常常见,例如在设置面板、软件多面板视图等...

    mfc做的小游戏

    在MFC框架下实现五子棋游戏,主要涉及到以下几个核心知识点: 1. **窗口和视图**:在MFC中,应用程序通常由一个主窗口和多个视图组成。五子棋游戏的主窗口负责显示游戏的整体布局,而视图则用于绘制棋盘和棋子,...

Global site tag (gtag.js) - Google Analytics