我先写了一个控件,里面自动产生了一些CEdit控件,然后加入到一个程序中,可是用Tab键时无效?
请帮忙? 问题点数:100、回复次数:13Top
1 楼jiangsheng(蒋晟.Net[MVP])回复于 2002-02-11 14:26:20 得分 10
@_@Top
2 楼puwei76()回复于 2002-02-11 16:21:51 得分 10
你是不是截获了键盘消息了?而且一但控件中有CEdit时,因为CEdit本身就要用TAB键来编择,所以很容易无效的。
如:你在CEdit中按TAB,是什么意思(1.切换控件;2.移动制表位)?这本身就有二义。Top
3 楼puwei76()回复于 2002-02-11 16:22:07 得分 10
你是不是截获了键盘消息了?而且一但控件中有CEdit时,因为CEdit本身就要用TAB键来编择,所以很容易无效的。
如:你在CEdit中按TAB,是什么意思(1.切换控件;2.移动制表位)?这本身就有二义。Top
4 楼joshua0137(joshua)回复于 2002-02-12 14:42:39 得分 10
将它的属性对话框中Style一页中的Tab Stop选上(大致如此,我现在在网吧上网).Top
5 楼joshua0137(joshua)回复于 2002-02-12 14:43:53 得分 10
对不起,俺搞错了,你得用代码给这些控件添加上这一风格Top
6 楼head163(去年不是很好希望今年好一点)回复于 2002-02-12 19:16:23 得分 0
大意是用tab键在各个控件上切换焦点!Top
7 楼JoeDuke(高宏伟 DukeJoe)回复于 2002-02-13 15:55:44 得分 10
你是不是用编程的方式实现的CEDIT这个控件,而不是用资源编辑器
如果是,那你可以设置CEDIT的STYLE中包含WS_TABSTOP风格就行了。
否则,上面已经joshua说了
比如 xx.style |= WS_TABSTOP ;就可以增加这个风格了。Top
8 楼xIzam(糖糖)回复于 2002-02-13 17:36:20 得分 10
设置了WS_TABSTOP是不是用鼠标点击了按钮也不会获得焦点?
我想知道怎样让鼠标点击了也不会获得焦点Top
9 楼head163(去年不是很好希望今年好一点)回复于 2002-02-14 00:32:56 得分 0
还是谢谢各位的指点,是这样的,
我在一个由CWin类新派生的类中创建了几个CEdit控件,几个CButton控件(Check、Radio)、CComboBox类似的控件,我想在这几个控件中互相切换!
Top
10 楼head163(去年不是很好希望今年好一点)回复于 2002-02-14 00:36:09 得分 0
还是谢谢各位的指点,是这样的,
我在一个由CWin类新派生的类中创建了几个CEdit控件,几个CButton控件(Check、Radio)、CComboBox类似的控件,我想在这几个控件中按TAB键互相切换!
Top
11 楼chehw(chehw)回复于 2002-02-14 01:18:25 得分 10
重载PreTranslateMessage
BOOL CMyWnd::PreTranslateMessage(LPMSG msg )
{
if( IsDialogMessage( msg ) )
return TRUE;
else
return CWnd::PreTranslateMessage( msg );
}
Top
12 楼shu()回复于 2002-02-27 09:43:06 得分 20
看来得编程解决,做一个记录各创建对象的连表或数组如CObArray,然后截获键盘消息,按顺序设置焦点yourarray.GetAt(i)->SetFocus();Top
13 楼head163(去年不是很好希望今年好一点)回复于 2002-03-27 20:49:19 得分 0
控件创建时用:参数WS_EX_CONTROLPARENT为关键
DWORD dwType = WS_CHILD|WS_VISIBLE| WS_TABSTOP;
DWORD dwExType = WS_EX_CONTROLPARENT|WS_EX_CLIENTEDGE;
CreateEx(dwExType, FGSNETCTRL_CLASSNAME, "",dwType, trect, this, id);Top




