lr CStatic 显示颜色区域
m_StaticPic CStatic 显示图像区域
为应用程序添加一个bmp 资源IDB_BITMAP1,设置图片控件的属xìng,如图7-6 所示。
图7-6 设置图片框属xìng
2.添加响应代码
添加响应鼠标单击的代码,用来得到鼠标落点的颜色并且显示出来。代码如下:
枫叶文学网www.fywxw.com
Visual C++ 6.0 程序设计从入门到精通
·174·
// 响应鼠标左键落在图片区域的cāo作
void CColorDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add yourcomssage handler code here and/or call default
CRect picRect, clrRect;
CBrush newBrush, *oldBrush;
COLORREF rgb;
CClientDC dc(this);
// 得到图片所在的区域矩形
m_StaticPic.GetWindowRect(picRect);
ScreenToClient(picRect);
// 得到颜色所在的区域矩形
m_StaticClr.GetWindowRect(clrRect);
ScreenToClient(clrRect);
// 如果鼠标落在图像区域
if(picRect.PtInRect(point))
{
// 得到该点的像素
rgb = dc.GetPixel(point);
// 生成新的画刷
newBrush.CreateSolidBrush(rgb);
// 设备选择新的画刷
oldBrush = dc.SelectObject(&newBrush);
// 用像素颜色的填充颜色矩形
dc.Rectangle(clrRect);
dc.SelectObject(oldBrush);
newBrush.DeleteObject();
// 刷新屏幕
Invalidate(FALSE);
}
CDialog::OnLButtonDown(nFlags, point);
}
枫叶文学网www.fywxw.com
第7 章 图形图像
·175·
3.运行结果
程序运行后,用鼠标单击图片不同的区域,程序界面如图7-7 所示。
(a) (b)
图7-8 4 鼠标点在不同区域的颜色
7.5 本章小结
本章讲述了使用Visual C++进行图形绘制和图像处理的基本方法。介绍了Windows 基本
的绘图函数,主要的GDI 对象,并且给出相应的实例。给一个图像浏览器应用程序,介绍了
图像处理的基本知识和算法。通过对本