社区
ATL
帖子详情
ActiveX控件的PreTranslateMessage(MSG* pMsg) 怎么不好使?
111222
2005-04-13 10:32:58
我的activeX控件由3个子窗口实现出来, 我为了让所有窗口有一个统一的右键菜单.
就PreTranslateMessage(MSG* pMsg) 处理WM_RBUTTONUP.
可是, 为什么, 为什么OnRButtonUp都执行完了. PreTranslateMessage还没有被调用.
为什么阿?
...全文
248
11
打赏
收藏
ActiveX控件的PreTranslateMessage(MSG* pMsg) 怎么不好使?
我的activeX控件由3个子窗口实现出来, 我为了让所有窗口有一个统一的右键菜单. 就PreTranslateMessage(MSG* pMsg) 处理WM_RBUTTONUP. 可是, 为什么, 为什么OnRButtonUp都执行完了. PreTranslateMessage还没有被调用. 为什么阿?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
ActiveX
控件
内部
控件
在容器中无法响应若干问题解决方法
ActiveX
控件
作为一种跨平台的
控件
,并可设计带界面的
ActiveX
,使用起来特别方便。然而有时会遇到
ActiveX
控件
中
控件
在容器中无法响应的问题,参考相关博客,结合自己试探,给出了一些解决办法。 ...
【小沐学C++】
ActiveX
控件
的MFC实现(VS2017,OpenGL)
文章目录1、简介2、代码编写3、注册
控件
4、结果运行后记 1、简介
ActiveX
控件
是允许网站提供视频和游戏等内容的小应用。 浏览 Web 时,你也可以使用这些小应用与工具栏和股票代码等内容进行交互。 但是,这些应用有时可能出现问题,或者向你提供不需要的内容。 在某些情况下,这些应用可以用来从你的电脑收集信息、破坏电脑上的信息、在未获得你同意的情况下在你的电脑上安装软件或允许其他人远程控制你的电脑。 2、代码编写 打开VS2017,新建一个MFC
ActiveX
控件
工程,如下图所示: (1)FxA
ActiveX
控件
开发总结
创建
ActiveX
工程: 可以使用VC建立MFC工程或者ATL工程来进行
ActiveX
控件
开发。使用MFC方式建立,系统会自动实现一些
ActiveX
控件
必须的接口,开发人员只需关注业务就可以了;使用ATL方式建立,开发人员需要实现十几个COM接口(
ActiveX
实际上是COM的一种),需要对COM有一定的了解。但是使用MFC方式,最后发布的安装包要包含引入了的MFC的DLL(视频
控件
引入了两个,
MFC对话框程序不能响应WM_CHAR消息的解决办法
重载Pre
Translate
Message
虚函数,代码如下: BOOL CaDlg::Pre
Translate
Message
(
MSG
*
p
Msg
) { // TODO: 在此添加专用代码和/或调用基类 if (WM_KEYDOWN ==
p
Msg
->
message
|| WM_CHAR ==
p
Msg
->
message
) {
p
Msg
->hwnd = m_hWnd; return
2011-03-29 14:53
ActiveX
控件
中接收并处理Windows消息的问题
问题描述: 新建一个MFC
ActiveX
工程,添加一对话框资源,上面有一些标准
控件
,如按钮、编辑框、树形列表等,并生成一个类CCtrlPanel。 在CXXXXCtrl类中: int CXXXXCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (COleControl::OnCreate(lpCreateStruct) =...
ATL
3,245
社区成员
48,539
社区内容
发帖
与我相关
我的任务
ATL
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
复制链接
扫一扫
分享
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章