我在处理位图图象时需要用到某一点象数的RGB值和这个象数在位图中的位置,下面是我通过OnLButtonDown事件得到鼠标所指的象素的RGB值的程序,但是在得到这个象数在位图中的位置时得到了困难?求救各位大侠...最好给出代码...谢谢
void CRegComStpDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
//获取左击鼠标所指的象素的RGB值
if(m_bGetColor)
{
SetCursor(LoadCursor(NULL, IDC_CROSS));
COLORREF color = GetDC()->GetPixel(point);

m_R.Format("%d",(BYTE)(GetRValue(color)));
m_G.Format("%d",(BYTE)(GetGValue(color)));
m_B.Format("%d",(BYTE)(GetBValue(color)));
R=(int)(GetRValue(color));
G=(int)(GetGValue(color));
B=(int)(GetBValue(color));
                  m_bGetColor=false;
}
    SetCursor(LoadCursor(NULL, IDC_ARROW));

CDialog::OnLButtonDown(nFlags, point);
UpdateData(false);
}

解决方案 »

  1.   

    用坐标变换,把位图的坐标原点与窗口的坐标原点与坐标系统一起来,好像是setwindoworg,然后只要用鼠标的位置就是位图的像素坐标了
      

  2.   

    我晕那么麻烦干什么啊,,COLORREF color;你要那个像素的话就
    CPoint pt;
    GetCurPos(&pt;)
    color = GetPixel(pt.x ,pt.y ,NULL);(具体是什么自己看MSDN)
    你的位图你至少要知道是多大的吧~然后从你得到的鼠标在加减以下就可以得到位图大小和位置,具体的请自己研究一下!呵呵!记得给们!!
      

  3.   

    根据选择点的坐标值.对应图像数据的值就可以知道了.
    你是如何读入图片的?
    再补一下这方面的知识.对以后有好处.至于当前点击的点的坐标可以得到.但不一定是图片上的位置.需要将设备坐标转换成逻辑坐标.才能准确知道图像中是哪点与之对应.
    DPTOLP.具体函数意义看msdn