先建立一个对话框工程,然后在对话框的OnTimer()事件处理函数里写下这些代码:
// TODO: Add your message handler code here and/or call default
POINT point;
GetCursorPos(&point);//取得屏幕当前光标位置
HWND hWnd = ::WindowFromPoint(point);//取得光标处的窗口句柄
HDC hDC = ::GetDC(hWnd);//取得该窗口的DC
::ScreenToClient(hWnd, &point);//把屏幕坐标转换成窗口坐标
COLORREF color = ::GetPixel(hDC, point.x, point.y);//取得颜色值
::ReleaseDC(hWnd, hDC);//释放窗口的DC
char szTitle[255];
ZeroMemory(szTitle, sizeof(szTitle));
::GetWindowText(hWnd,szTitle, sizeof(szTitle));//取得窗口标题
CString strMsg;
strMsg.Format("%X", color);
//把取得的值显示在屏幕上
SetDlgItemText(IDC_STATIC_COLOR, strMsg);
SetDlgItemText(IDC_STATIC_TITLE, szTitle);
如果想要该程序的窗口在最前面,在OnInitDialog函数里加上这句:
::SetWindowPos(GetSafeHwnd(), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE );