MFC写的activex控件,加载后开始时取不到键盘消息?
MFC写的activex控件,加载后开始时取不到键盘消息,按一下tab键以后就可以了。
加载过程中已经设置控件焦点了,但是就是无效。按tab键以后一切正常。不知道什么
原因?
问题点数:100、回复次数:8Top
1 楼wildmen(纸上得来总觉浅,绝知此事要躬行。)回复于 2006-02-24 11:53:33 得分 20
在加载完后又会失去焦点。
我是在鼠标点击控件的时候再获得焦点。Top
2 楼domustdohz(迷茫)回复于 2006-02-24 12:08:50 得分 0
鼠标点击再获得焦点结果还是一样。在普通应用程序中测试是正常的,在IE里面就有这个问题。
需要按一下tab键才有效。Top
3 楼domustdohz(迷茫)回复于 2006-02-24 14:45:03 得分 0
IE里面如何捕捉“光标键”?上面的问题主要就是光标键开始捕捉不到,但是按tab键以后就可以捕捉到了。太奇怪了。Top
4 楼wildmen(纸上得来总觉浅,绝知此事要躬行。)回复于 2006-02-27 11:04:52 得分 30
鼠标点击再获得焦点结果还是一样。在普通应用程序中测试是正常的,在IE里面就有这个问题。
需要按一下tab键才有效。
---------------------------
1. 鼠标点击,触发一个事件;
2. 容器程序接收事件,调用控件的setfocus方法。
注意:在容器里设置个开关。判断如果已经有焦点就不要重复setfocus.
Top
5 楼cx0928(阳光)回复于 2006-02-28 09:24:34 得分 25
MFC写的activex控件,dlg要设为control parent属性Top
6 楼syy64(太平洋)回复于 2006-02-28 09:54:44 得分 25
在
CWnd::PreTranslateMessage
函数里处理。Top
7 楼domustdohz(迷茫)回复于 2006-02-28 13:10:04 得分 0
鼠标点击,触发一个事件;
2. 容器程序接收事件,调用控件的setfocus方法。
之前也这样试过,没有效果
==========================
MFC写的activex控件,dlg要设为control parent属性
之前已经试了,好像没有效果。
=================================
CWnd::PreTranslateMessage
函数里处理。
==本来就是在这里处理的,不成功的原因就是CWnd::PreTranslateMessage函数不一定被调用。
按tab键以后才会调用
Top
8 楼domustdohz(迷茫)回复于 2006-02-28 13:12:20 得分 0
问题已经用比较龌龊的方法解决了。
就是
1. 鼠标点击,触发一个事件;
2. 容器程序接收事件,在这里模拟一个tab键盘消息,
然后再调用控件的setfocus方法。
这样以后就能确保CWnd::PreTranslateMessage每次都能被调用Top




