当前位置:编程学习 > VC++ >>

vc++图像处理如何提取像素值

答案:要想捕获当前线程内(也就是当前CxxxApp)所有窗口上光标所在的像素颜色,需要重载CxxxApp的PreTranslateMessage函数,加: if ( pMSG->message == WM_MOUSEMOVE) { CPoint ptScreen; GetCursorPos(&ptScreen); CWnd*DeskWnd = GetDesktopWindow(); CDC*DeskDC = DeskWnd->GetDC(); COLORREF clr = DeskDC->GetPixel(ptScreen); DeskWnd->ReleaseDC(DeskDC); CString strShow; strShow.Format("%d", clr); ... } 要想捕获当前屏幕任何地方的像素值,要先SetCapute,然后在使用上面的代码。
其他:CPoint   point;
        GetCursorPos(&point);//get   cursor   pos
        HDC   hDC   =   ::GetDC(NULL);//lock   paint   DC
        COLORREF   colorref   =   ::GetPixel(hDC,   point.x,   point.y);   //get   the   cursor   color 
        GetRValue(colorref);//store   red   color
        GetGValue(colorref);//store   green   color
        GetBValue(colorref);//store   blue   color
        ::ReleaseDC(NULL,   hDC);//unlock   DC 

GetPixel是CDC类里的函数

上一个:VC++ 请教各位编程高手,指出下错误,不胜感激……
下一个:VC++6.0 怎么就能删除控件和他的ID了?

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,