请教一个有关SetCapture()&ReleaseCapture()的问题! 100分

maskii 2003-07-20 11:58:10
我对一个窗口设置了SetCapture(), 让它获得所有的Mouse Message.但是我想在做了一点处理后将这个发给原来它应该去的窗口,代码示例如下:

//别的地方已经SetCapture了
void CToolTip::OnLButtonDown(UINT nFlags, CPoint point)
{
ShowWindow(SW_HIDE);
ReleaseCapture();

//send a message to the appropriate window
ClientToScreen(&point);
CWnd* pWnd = WindowFromPoint(point);

pWnd->ScreenToClient(&point);
pWnd->SendMessage(WM_ACTIVATE, 0, 0);
pWnd->SendMessage(WM_LBUTTONDOWN, 0, MAKELONG(point.x, point.y));

CWnd::OnLButtonDown(nFlags, point);
}

可是别的窗口虽然做了OnLButtonDown中的事情,可就是不能整个窗口都显示到最前面,这是怎么回事?我应该发什么消息才好呢?
...全文
43 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jishiping 2003-07-20
  • 打赏
  • 举报
回复
pWnd->SendMessage(WM_ACTIVATE, 0, 0); 改为 SetForegroundWindow(pWnd->m_hWnd);
maskii 2003-07-20
  • 打赏
  • 举报
回复
TO: common_man(谢安王导)
你的方法不行呀!
common_man 2003-07-20
  • 打赏
  • 举报
回复
把这两句倒来:
pWnd->SendMessage(WM_ACTIVATE, 0, 0);
pWnd->SendMessage(WM_LBUTTONDOWN, 0, MAKELONG(point.x, point.y));


改为:
pWnd->SendMessage(WM_LBUTTONDOWN, 0, MAKELONG(point.x, point.y));
pWnd->SendMessage(WM_ACTIVATE, 0, 0);


mafangsan 2003-07-20
  • 打赏
  • 举报
回复
这个事情应该用HOOK来做

maskii 2003-07-20
  • 打赏
  • 举报
回复
还是不行

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧