//IDI_ICON2 为无靶图标资源号
this->SetIcon(hicon2);
CStatic::OnLButtonDown(nFlags, point);
}
void CMyPic::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
ReleaseCapture(); //释放鼠标捕获
HICON hicon1 = LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE
(IDI_ICON1));
//IDI_ICON1 是有靶图标资源号
this->SetIcon(hicon1);
CStatic::OnLButtonUp(nFlags, point);
}
探测器外观制作完成了。可以先运行一下,把鼠标按下后拖动试试。下面来实现其功
能:获取窗口句柄。根据鼠标位置来确定窗口需要用到 API 函数 GetCursorPos 和
WindowFromPoint。此外,我们还想做到像抓图程序那样,鼠标移动到的地方,窗口四
周会出现闪烁的矩形。这一点,我们用定时器来实现。定时器设在 CSpyXXDlg 类中,但
要由 CMyPic 中的 OnLButtonDown 来启动。所以,我们定义一个全局变量 g_hMe 将
CSpyXXDlg 的实例句柄保存起来。同时,被选取的窗口句柄也涉及到在多个标签页中显
示,所以也用全局变量 g_hWnd 将之保存。其余的用于显示标签页的属性页对话框句柄分
别用 g_hPage0、g_hPage1、g_hPage2、g_hPage3 和 g_hPage4 来保存。启动定时
器的代码如下:
FromHandle(g_hMe)->SetTimer(1,600,NULL);
在定时器中,我们要实现桌面范围内的矩形绘制。代码如下:
POINT pnt;
RECT rc;
HWND DeskHwnd = ::GetDesktopWindow(); //取得桌面句柄
HDC DeskDC = ::GetWindowDC(DeskHwnd); //取得桌面设备场景
评论2
最新资源