我做了一个activex控件放在一个view里,在activex控件里处理了单击事件,但是在view里怎么知道它被点击呢,我不希望是根据鼠标坐标来判断

ssbelle 2006-01-08 04:58:27
如题 请赐教 谢谢!
...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xing_xing_xing 2006-01-08
  • 打赏
  • 举报
回复
Window标准控件会发送WM_NOTIFY消息.可以仿造这个发送
SendMessage(hwndParent,WM_NOTIFY,controlID,lparam);

然后在View里响应WM_NOTIFY事件.根据控件的id,还有lparam中的控件窗口句柄来区分
handsomerun 2006-01-08
  • 打赏
  • 举报
回复
五、响应键盘和鼠标事件

   许多控件需要让用户利用箭头键改变显示,比如在文本之间移动作为插入点
的闪烁线条,或是在容器内移动以获得更好的定位精度。然而,有时容器也利用
相同的按键,如IE使用向下的箭头键滚动HTML文档,此时控件在获得焦点时并不
能够响应箭头键。

   通过覆盖CWnd类的PreTranslateMessage函数可以重新收回由容器对象控制
的箭头键(以及其它键)的控制权。只要监视WM_KEYDOWN消息并过滤出需要的事
件,然后在需要响应某个按键的时候,调用OnKeyDown并返回True。

   如果是在MDI窗口内使用ActiveX控件,而另一个窗口部分地隐藏该MDI窗口
,可能会遇到另外一个问题:单击ActiveX控件并不能使MDI窗口移到最前面(即
激活)。这是由于MDI窗口不能得知用户在ActiveX控件上的鼠标单击事件,因而
无法作出响应并把自己设为活动窗口。

   要是能够让父窗口(在这里是指MDI窗口)获知ActiveX控件上的单击事件,
就可以解决这个问题。一个简单的办法是由控件发送WM_ PARENTNOTIFY消息给父
窗口以通知该鼠标单击事件。WM_ PARENTNOTIFY消息在控件被创建、破坏或用户
在控件上按鼠标键的时候发送。通过设置合适的扩展风格位,可以确保用户按鼠
标键时控件发送该消息。首先覆盖控件的PreCreateWindow虚函数。传递给这个函
数的参数CREATESTRUCT包含dwExStyle成员,使用该成员可以检查或修改用于创建
控件的扩展风格位:

   BOOL CCtrl::PreCreateWindow(CREATESTRUCT& cs){

   cs.dwExStyle &=

   ~WS_EX_NOPARENTNOTIFY;

   return

   COleControl::PreCreateWindow(cs);}

   这个修改导致用户在控件上按鼠标键时控件的缺省鼠标处理过程发送
WM_PARENTNOTIFY消息,父窗口可以利用这个机会激活自己。


连接
http://www.evget.com/articles/evget_1089.html

不过偶也没试过行不行
hoho
ssbelle 2006-01-08
  • 打赏
  • 举报
回复
请说具体一点好吗。。。。比如说控件受到了单击 发送消息给view 然后view得到这个消息以后 得到被单击的控件的名称 然后弹出一个页面 这个消息应该怎么定义呢。。。。。
是不是在控件里需要定义一次 在view里也要定义一次 然后在view里写消息的处理程序?
如果有好几个控件 每个控件有不同的名称 怎么保证在消息处理函数里得到被点击的那个控件的名称呢?
handsomerun 2006-01-08
  • 打赏
  • 举报
回复
你可以在控件接受到单击消息以后,发送自定义消息给父窗口,就是那个view

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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