我做了一个基于对话框的程序,就是想做一个能得到屏幕上某个点的颜色的程序(颜色拾取器)。鼠标在对话框内时程序可以得到鼠标的位置,也就能取得颜色值。可鼠标一出对话框,就不行了,该怎么办呢?请高手指点一下!我的代码如下:
HDC hDC = ::GetDC(NULL);
CPoint pt;
GetCursorPos(&pt);//得到当前鼠标所在位置
COLORREF clr = ::GetPixel(hDC, pt.x, pt.y); //获取当前鼠标点像素值
m_nX=pt.x;
m_nY=pt.y;
CString ClrText;
ClrText.Format("%d",GetRValue(clr));//分解出红色值
m_strRed=ClrText;
ClrText.Format("%d",GetGValue(clr)); //分解出绿色值
m_strGreen=ClrText;
ClrText.Format("%d",GetBValue(clr)); //分解出蓝色值
m_strBlue=ClrText;//m_strRed,m_strGreen,m_strBlue分别对应对话框中的三个编辑框
UpdateData(FALSE);
::ReleaseDC(NULL, hDC); //释放屏幕DC
HDC hDC = ::GetDC(NULL);
CPoint pt;
GetCursorPos(&pt);//得到当前鼠标所在位置
COLORREF clr = ::GetPixel(hDC, pt.x, pt.y); //获取当前鼠标点像素值
m_nX=pt.x;
m_nY=pt.y;
CString ClrText;
ClrText.Format("%d",GetRValue(clr));//分解出红色值
m_strRed=ClrText;
ClrText.Format("%d",GetGValue(clr)); //分解出绿色值
m_strGreen=ClrText;
ClrText.Format("%d",GetBValue(clr)); //分解出蓝色值
m_strBlue=ClrText;//m_strRed,m_strGreen,m_strBlue分别对应对话框中的三个编辑框
UpdateData(FALSE);
::ReleaseDC(NULL, hDC); //释放屏幕DC
http://www.vckbase.com/document/viewdoc/?id=403