一个鼠标指针有关的启发(存在问题,可以参考一下 呵呵)
*.h里面:
HWND hrcWnd;
::OnRButtonUp( .. CPoint point )
{
::GetCursorPos(&point); //获取当前鼠标位置
CWnd *srcWnd=WindowFromPoint(point ); //返回鼠标所在窗口的指针
hrcWnd=srcWnd->m_hWnd;
}
::OnFoo()
{CRect range;
CWnd srcWnd;
srcWnd.Attach(hrcWnd);//截取图像的窗口句柄hrcWnd 转换成CWnd对象
//Attach这里出错。
srcWnd.GetWindowRect(&range);
...
}
奇怪的是:执行CWnd *srcWnd=WindowFromPoint(point ); 之后,
srcWnd->m_hWnd 0x00a50276
unused CXX0030: Error: expression cannot be evaluated
执行完hrcWnd=srcWnd->m_hWnd; 之后,
hrcWnd 自然也是 0x00a50276,
unused CXX0030: Error: expression cannot be evaluated
(unused是在Debug中看到的)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】博客园2025新款「AI繁忙」系列T恤上架,前往周边小店选购
【推荐】凌霞软件回馈社区,携手博客园推出1Panel与Halo联合会员
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步