MFC ActiveX控件的问题,很急
1、我这个MFC ActiveX控件包装了一个可编辑的ActiveX控件,
内部控件占据外部控件全部的空间,当我把此控件放入网页中,
在编辑控件中的内容时,按Backspace键,IE就跳转到前面的网
页去了,而我的目的是删除错误输入的字符。我发现原因是在
IE中点击控件时,激活的是内部控件,而外部控件并没有激活。
但IE并不认识内部控件,使按Backspace键的消息不能被内部控
件截获。
2、如何在MFC ActiveX控件中截获子控件的消息。
各位打侠帮我一下,我很急。希望能给我一个例子。
问题点数:100、回复次数:10Top
1 楼zxs218(Frank Zhou)回复于 2002-05-09 18:01:02 得分 60
使用SubClassDlgItem
CWnd::SubclassDlgItem
BOOL SubclassDlgItem( UINT nID, CWnd* pParent );
我有一个例子,zxs218@163.comTop
2 楼mylonestartear(孤心)回复于 2002-05-09 21:09:42 得分 0
zxs218(frank Zhou):我也想要一個,mylonestartear@163.net.ThanksTop
3 楼WoShiWaHaHa(娃哈哈)回复于 2002-05-09 23:18:35 得分 0
zxs218(frank Zhou):我已给你发了一个email,我的Email是:wtl_supcon@sina.comTop
4 楼zxs218(Frank Zhou)回复于 2002-05-10 08:50:47 得分 0
已发,请查收。Top
5 楼WoShiWaHaHa(娃哈哈)回复于 2002-05-10 18:11:53 得分 0
谢谢zxs218(frank Zhou):
这确实是截获控件事件的好方法,请你回复以下ActiveX/COM论坛的“如何在MFC ActiveX控件中截获子控件的事件(woshiwahaha)”主题,那里我有100分。这个问题我还想保留一段时间,因为我把你的控件放入网页时发现BackSpace不能删除字符,网页在附件里。
再次感谢你帮我解决了大问题,希望你也能帮我解决这个问题。
Top
6 楼WoShiWaHaHa(娃哈哈)回复于 2002-05-13 22:59:16 得分 0
我这个MFC ActiveX控件包装了一个可编辑的ActiveX控件,
内部控件占据外部控件全部的空间,当我把此控件放入网页中,
在编辑控件中的内容时,按Backspace键,IE就跳转到前面的网
页去了,而我的目的是删除错误输入的字符。我发现原因是在
IE中点击控件时,激活的是内部控件,而外部控件并没有激活。
但IE并不认识内部控件,使按Backspace键的消息不能被内部控
件截获。Top
7 楼WoShiWaHaHa(娃哈哈)回复于 2002-05-13 23:01:07 得分 0
现在问题只剩下第一个,即
1、我这个MFC ActiveX控件包装了一个可编辑的ActiveX控件,
内部控件占据外部控件全部的空间,当我把此控件放入网页中,
在编辑控件中的内容时,按Backspace键,IE就跳转到前面的网
页去了,而我的目的是删除错误输入的字符。我发现原因是在
IE中点击控件时,激活的是内部控件,而外部控件并没有激活。
但IE并不认识内部控件,使按Backspace键的消息不能被内部控
件截获。
版主能帮我解答一下吗?Top
8 楼gxh(我是一只菜菜菜菜鳥)回复于 2002-05-14 14:40:42 得分 20
Try to use PreTranslateMessage handle.Top
9 楼WoShiWaHaHa(娃哈哈)回复于 2002-05-15 08:35:50 得分 0
PreTranslateMessage是没用的Top
10 楼acarluse(石头)回复于 2002-05-15 22:28:58 得分 20
在IE下,BACK,TAB,UP,DOWN等键发出的消息被它截获,IE并不会自动将其发送给PretranslateMessage, 要想使消息能发送到PretranslateMessage进行处理,可在创建窗口时加入OnActivateInPlace(TRUE,NULL)。
你的问题说的不够清楚,你的控件是由哪个类继承来的?CEdit?CRichEditCtrl还是其它可编辑类?Top




