我有一个画在窗户上的椭圆。当指针在它上面(椭圆上)时,我想显示一条消息。我怎么做?形状有什么事件吗?喜欢WM_MOVE
或WM_SIZE
。
我使用TDM-GCC
和C
语言。
当您在设备上下文上绘图时,您绘制的形状的所有知识都会丢失,系统只会保留该设备上下文的逐像素信息。因此,系统无法为您提供有关您绘制的形状的任何信息,因为它对这些形状一无所知。
为了做你想做的事情,你需要在你的程序中跟踪你的形状在哪里的高级逻辑。然后,当您处理鼠标消息时,您可以将它们映射到您自己的表示形状的数据结构上。
没有鼠标在绘图上活动的事件。您应该记住您在哪里绘制,然后自己将鼠标坐标映射到绘图坐标。为了帮助解决这个问题,请查看该PtInRegion()
功能。创建一个与您的绘图相匹配的椭圆过HRGN
孔CreateEllipticRgn()
(CreateEllipticRgnIndirect()
实际上,您可以使用它HRGN
来帮助简化绘图,请参阅FillRgn()
函数),并且当您要测试鼠标当前是否在绘图内时,例如在WM_MOUSEMOVE
处理程序中,你可以使用PtInRegion()
它。