【发布时间】:2014-07-28 07:14:46
【问题描述】:
我创建了一个图片控件(类型:框架)来显示图像。现在我想用鼠标点击图片控件的指定坐标来显示位置和R、G、B值。我该如何解决这个问题?
【问题讨论】:
标签: mfc
我创建了一个图片控件(类型:框架)来显示图像。现在我想用鼠标点击图片控件的指定坐标来显示位置和R、G、B值。我该如何解决这个问题?
【问题讨论】:
标签: mfc
捕获 WM_LBUTTONDOWN 消息。从 lParam 获取 x/y 坐标(有关详细信息,请参阅 MSDN)。使用 GetDIBits() 从图像中获取位。从您从 GetDIBits() 获得的位图缓冲区中读取 RGBA,在您从 lParam 获得的位置 x/y 处。这假设您的图片控件不进行缩放等,您必须为此更正 x/y。或者,您可以使用 ::PrintWindow() API 将窗口副本获取到 DC;然后,您可以在 DC 上使用 GetPixel() 来获取 COLORREF。想一想,如果您只追求一个 RGB 值,这可能是一个更好的解决方案。
【讨论】: