VC获取鼠标所在位置窗口

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC获取鼠标所在位置窗口
api
文档
2010
2011-05-06 13:25 16ຫໍສະໝຸດ Baidu7人阅读 评论(0) 收藏 举报
编 号 : A3GS_TV20100122003
描述: 本文以实例代码的形式讲述了在VC中下实现鼠标所在位置窗口的获取。 例子代码: 请下载本文附带例子代码。 技术实现: 头文件:
#include < winuser.h> 技术说明:
2. 重定PreTranslateMessage函数 在此函数里当我们发现是WM_MOUSEMOVE消息时调用我们上面写的OnMouseMove函数。本函数代 码如下:
BOOL CTestDlg::PreTranslateMessage(MSG* pMsg) {
if (pMsg->message==WM_MOUSEMOVE) {
CPoint point(LOWORD(pMsg->lParam),HIWORD(pMsg->lParam)); ::ClientToScreen(pMsg->hwnd,&point); //第一个步骤自己写的函数 OnMouseMove(0,point);
} return CDialog::PreTranslateMessage(pMsg); }
实现本功能主要就是一个WindowFromPoint系统API的调用,本API的详细信息请参见MSDN相关文档。本文 以对话框窗口为例子一说明如果获取当前鼠标所在位置下的窗口信息。实现步骤如下:
1. 编写WM_MOUSEMOVE消息响应函数:
void CTestDlg::OnMouseMove(UINT nFlags, CPoint point) { CWnd * pWnd = WindowFromPoint(point); if (AfxIsValidAddress(pWnd,sizeof(CWnd))) if (::IsChild(m_hWnd,pWnd->m_hWnd)) { CString str; pWnd->GetWindowText(str); SetWindowText(str); } CDialog::OnMouseMove(nFlags, point); }
相关文档
最新文档