ActiveX控件的PreTranslateMessage(MSG* pMsg) 怎么不好使?

111222 2005-04-13 10:32:58

我的activeX控件由3个子窗口实现出来, 我为了让所有窗口有一个统一的右键菜单.

就PreTranslateMessage(MSG* pMsg) 处理WM_RBUTTONUP.

可是, 为什么, 为什么OnRButtonUp都执行完了. PreTranslateMessage还没有被调用.

为什么阿?
...全文
248 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
111222 2005-04-17
  • 打赏
  • 举报
回复
啊不, 起的好早啊! 怎么没见你的QQ上线
111222 2005-04-17
  • 打赏
  • 举报
回复
你怎么这么晚还没休息啊
111222 2005-04-17
  • 打赏
  • 举报
回复
没办法, 我又用消息钩子处理了
蒋晟 2005-04-17
  • 打赏
  • 举报
回复
控件可以处理消息循环分发过来的消息。这个pretranslatemsg本来就是MFC扩展的,其他的容器的消息循环不支持。
111222 2005-04-17
  • 打赏
  • 举报
回复
我还是不明白, 为什么控件没有自己的消息循环, 没有消息循环, 怎么PAINT, 怎么CREATE, 怎么SIZE呢....

难道我要在ActiveX控件里用MS的标准TOOLTIP就要用鼠标钩子去传递消息么?

我好长时间没太接触COM相关的东西了, 一接触就头大, 好多莫名其妙的东西, 感觉MS的开发就像是陷阱.
蒋晟 2005-04-16
  • 打赏
  • 举报
回复
就是消息循环的问题
pretranslatemsg是消息循环调用的,但是控件没有自己的消息循环,所以重载的pretranslatemsg不会被调用。
111222 2005-04-16
  • 打赏
  • 举报
回复
另外, 按照http://support.microsoft.com/support/kb/articles/q168/7/77.asp所说的代码去做, 控件到ActiveX control test container中会出现异常. 异常的位置就是OnActivateInPlace.
111222 2005-04-16
  • 打赏
  • 举报
回复
JiangSheng:

这个问题我没办法用你说的办法解决, 即使按照你说的方法做了, 也还是无法收到鼠标消息.
我后来加了一个鼠标钩子, 算是已经解决了吧. 所有子窗口能有统一的右键菜单调用了.

---

可是, 子窗口们还是处理不到PreTranslateMessage:(
我的子窗口之一是个对话框, 对话框上有若干按钮.
我要给按钮去实现TOOLTIP, 所以要用到:

BOOL CControlDialog::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message== WM_LBUTTONDOWN ||
pMsg->message== WM_LBUTTONUP ||
pMsg->message== WM_MOUSEMOVE ||
pMsg->message== WM_RBUTTONDOWN ||
pMsg->message== WM_RBUTTONUP ||
pMsg->message== WM_RBUTTONDBLCLK ||
pMsg->message== WM_LBUTTONDBLCLK
)
{
m_wndToolTipCtrl.RelayEvent(pMsg);
}
return CDialog::PreTranslateMessage(pMsg);
}

可是无论我是在IE中使用控件, 还是在ActiveX control test container中, 该对话框的pretranslatemsg始终无法被执行到. 我该怎么办啊?

fanqing 2005-04-15
  • 打赏
  • 举报
回复
up
蒋晟 2005-04-15
  • 打赏
  • 举报
回复
http://support.microsoft.com/support/kb/articles/q168/7/77.asp
111222 2005-04-15
  • 打赏
  • 举报
回复
up

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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