TC官方合作论坛

 找回密码
 立即注册
查看: 481|回复: 1
打印 上一主题 下一主题

[问题] 实现TAB切换控件焦点问题,必采纳

[复制链接]
跳转到指定楼层
楼主
发表于 2014-12-24 09:08:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
比如界面上有6个控件 1 2 3 4 5 6
我想123 为1组这3个相互切换    456为另一组这3个相互切换

//很多同学说文档里面全部是中文代码没有英文代码
//所以这个示例给大家以中英文代码混写展示

空间 实现TAB切换控件焦点
//默认空间
WM_KEYDOWN=256//按下一个键
WM_KEYUP=257//释放一个键
WM_SETFOCUS=7//获得焦点后
WM_KILLFOCUS=8//失去焦点

VK_TAB=9//TAB

//上面的消息以及一些键盘的常量定义大家可以参考文档里面的 第12章 ASCII表与虚拟键码表

max=3//控件的数量
控件名=数组[1]//控件的名字最好定义在统一的方便代码的实现
//也可以把控件名写到一个数组里面也是可以的

功能 初始化()
    //这里添加你要执行的代码
    控件名=数组空间.重定义(控件名,1,max)//重新构造数组大小
    控件名[0]="编辑框0"
    控件名[1]="编辑框1"
    控件名[2]="编辑框2"
   
功能结束
//消息路由功能
功能 实现TAB切换控件焦点_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)
   
    选择(消息)
        条件 256://WM_KEYDOWN select的条件不能为变量只能为常量
        如果(w参数==VK_TAB)//当按下TAB键的时候设置下一个控件的焦点
            遍历(i=0;i<max;i++)//用循环遍历当前焦点所在的控件
                如果(句柄==控件.获得句柄(控件名[i]))
                    如果(i==(max-1))//如果当前是最后一个控件,自动把焦点移动到第一个控件
                        window.setfocus(control.gethandle(控件名[0]))
                        返回 真//处理完成后必须直接返回真,否则不能正常执行
                    如果结束
                    窗口.设置焦点(控件.获得句柄(控件名[i+1]))//设置下一个控件的焦点
                    返回 真//处理完成后必须直接返回真,否则不能正常执行
                如果结束
            遍历结束                  
        如果结束
    选择结束
    返回 假
   
功能结束

空间结束
//空间结束语句

本人菜鸟,麻烦大神们给个实例源码.
回复

使用道具 举报

沙发
 楼主| 发表于 2014-12-25 10:09:22 | 只看该作者
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-23 21:21 , Processed in 0.139402 second(s), 25 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表