-----100分求救ActiveX控件鼠标事件的问题-----

luyangcplusplus 2011-03-24 03:57:54
各位大哥好,小弟最近用VS2005做了一个MFC的ActiveX控件。

我想在右键点击控件的时候,添加一些操作,但是不知道怎么实现。

我在控件的鼠标右键响应函数里添加代码,但是没有响应。

void CTestCtrl::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

COleControl::OnRButtonDown(nFlags, point);
AfxMessageBox("ok");
}

我想右键点击的时候,弹出MessageBox,但是没有反应。

请各位大哥不吝赐教,不胜感激!
...全文
281 16 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
luyangcplusplus 2011-04-13
  • 打赏
  • 举报
回复
问题还是没有解决,不过谢谢大家吧,结贴散分
gaugecontrol 2011-03-25
  • 打赏
  • 举报
回复
一般能弹出来,但在测试容器中,是弹不出来的,测试这个需要单独建个程序。
希望对你有帮助。


----------------------
虚拟仪表控件 www.beaugauge.net
anbam 2011-03-25
  • 打赏
  • 举报
回复
好的,
1你使用mfc新建了一个activex控件,选项都是默认的
2你是初学者,右键点击的事件响应,应该是资源列表中的某个对话框的属性列表中添加的,默认情况下,你选择的是CXXXPropPage
3解决方法:
你的项目中有个类xxx,其中默认情况下,重载了OnDraw方法,找到这个类
添加 ON_WM_RBUTTONDOWN()
BEGIN_MESSAGE_MAP(xxx,xxx)
。。。
ON_WM_RBUTTONDOWN()
END_MESSAGE_MAP()

头文件中添加声明
afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
cpp中添加
void xxxl::OnRButtonDown(UINT nFlags, CPoint point)
luyangcplusplus 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 anbam 的回复:]
能执行才奇怪
[/Quote]

anbam,为什么我的这个方法
void CTestCtrl::OnRButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

COleControl::OnRButtonDown(nFlags, point);
AfxMessageBox("ok");
}

在控件上点击右键,不响应呢,可以给我讲讲吗?
anbam 2011-03-25
  • 打赏
  • 举报
回复
能执行才奇怪
luyangcplusplus 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lostying 的回复:]
CTRL也是从CWnd继承下来的,你有界面也就是有窗口盖在上面了,右键消息是上层窗口的.
[/Quote]

lostying,能说详细一点吗?
luyangcplusplus 2011-03-25
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wangyt 的回复:]
可能你的调试方法有问题。不该用MessageBox。可能IE会屏蔽这样的函数。换另一种方式试试,比如写一个txt文件试试。
[/Quote]


写文件的方法也不执行
一名程序员 2011-03-25
  • 打赏
  • 举报
回复
可能你的调试方法有问题。不该用MessageBox。可能IE会屏蔽这样的函数。换另一种方式试试,比如写一个txt文件试试。
无言猪 2011-03-25
  • 打赏
  • 举报
回复
CTRL也是从CWnd继承下来的,你有界面也就是有窗口盖在上面了,右键消息是上层窗口的.
luyangcplusplus 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 singwhatiwanna 的回复:]
控件要在测试程序中测试,或者用ActiveX Control Test Container
[/Quote]

这是一个带界面的ActiveX控件,我加载在html页面中使用。

这个好像跟测试的容器没有关系吧?
singwhatiwanna 2011-03-24
  • 打赏
  • 举报
回复
控件要在测试程序中测试,或者用ActiveX Control Test Container
luyangcplusplus 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 singwhatiwanna 的回复:]
AfxMessageBox("ok");
加在上面吧
[/Quote]

加在上面也不行
singwhatiwanna 2011-03-24
  • 打赏
  • 举报
回复
AfxMessageBox("ok");
加在上面吧
luyangcplusplus 2011-03-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 singwhatiwanna 的回复:]
你不觉得你的框应该弹在上面么
[/Quote]

弹在上面也不行啊
singwhatiwanna 2011-03-24
  • 打赏
  • 举报
回复
你不觉得你的框应该弹在上面么

3,248

社区成员

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

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