-1

我有一个画在窗户上的椭圆。当指针在它上面(椭圆上)时,我想显示一条消息。我怎么做?形状有什么事件吗?喜欢WM_MOVEWM_SIZE

我使用TDM-GCCC语言。

4

2 回答 2

3

当您在设备上下文上绘图时,您绘制的形状的所有知识都会丢失,系统只会保留该设备上下文的逐像素信息。因此,系统无法为您提供有关您绘制的形状的任何信息,因为它对这些形状一无所知。

为了做你想做的事情,你需要在你的程序中跟踪你的形状在哪里的高级逻辑。然后,当您处理鼠标消息时,您可以将它们映射到您自己的表示形状的数据结构上。

于 2020-01-15T09:24:35.383 回答
1

没有鼠标在绘图上活动的事件。您应该记住您在哪里绘制,然后自己将鼠标坐标映射到绘图坐标。为了帮助解决这个问题,请查看该PtInRegion()功能。创建一个与您的绘图相匹配的椭圆过HRGNCreateEllipticRgn()CreateEllipticRgnIndirect()实际上,您可以使用它HRGN来帮助简化绘图,请参阅FillRgn()函数),并且当您要测试鼠标当前是否在绘图内时,例如在WM_MOUSEMOVE处理程序中,你可以使用PtInRegion()它。

于 2020-01-15T21:03:25.840 回答