字体
第(5/6)页
关灯
   存书签 书架管理 返回目录
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 对象,并且给出相应的实例。给一个图像浏览器应用程序,介绍了

    图像处理的基本知识和算法。通过对本
上一页 目录 下一页