TC官方合作论坛

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

[问题] 实现TAB切换控件,1个很奇怪的问题

[复制链接]
跳转到指定楼层
楼主
发表于 2015-5-2 00:34:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上加入TC

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

x
本帖最后由 cjxdn 于 2015-5-2 00:39 编辑

官方的示例:
  1. 空间 实现TAB切换控件焦点

  2. WM_KEYDOWN=256//按下一个键
  3. WM_KEYUP=257//释放一个键
  4. WM_SETFOCUS=7//获得焦点后
  5. WM_KILLFOCUS=8//失去焦点
  6. VK_TAB=9//TAB
  7. //上面的消息以及一些键盘的常量定义大家可以参考文档里面的 第12章 ASCII表与虚拟键码表

  8. max=3//控件的数量
  9. 控件名=数组[1]//控件的名字最好定义在统一的方便代码的实现

  10. 功能 初始化()
  11.     控件名=数组空间.重定义(控件名,1,max)//重新构造数组大小
  12.     控件名[0]="编辑框0"
  13.     控件名[1]="编辑框1"
  14.     控件名[2]="编辑框2"
  15.    
  16. 功能结束

  17. 功能 实现TAB切换控件焦点_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)
  18.     选择(消息)
  19.         条件 256://WM_KEYDOWN select的条件不能为变量只能为常量
  20.         如果(w参数==VK_TAB)//当按下TAB键的时候设置下一个控件的焦点
  21.             遍历(i=0;i<max;i++)//用循环遍历当前焦点所在的控件
  22.                 如果(句柄==控件.获得句柄(控件名[i]))
  23.                     如果(i==(max-1))//如果当前是最后一个控件,自动把焦点移动到第一个控件
  24.                         窗口.设置焦点(控件.获得句柄(控件名[0]))
  25.                         键盘.按下(17)//Ctrl
  26.                         键盘.按下(65)//A
  27.                         键盘.按键(39)//→
  28.                         键盘.弹起(65)//A
  29.                         键盘.弹起(17)//Ctrl
  30.                         返回 真//处理完成后必须直接返回真,否则不能正常执行
  31.                     如果结束
  32.                     窗口.设置焦点(控件.获得句柄(控件名[i+1]))//设置下一个控件的焦点
  33.                     键盘.按下(17)//Ctrl
  34.                     键盘.按下(65)//A
  35.                     键盘.按键(39)//→
  36.                     键盘.弹起(65)//A
  37.                     键盘.弹起(17)//Ctrl
  38.                     返回 真//处理完成后必须直接返回真,否则不能正常执行
  39.                 如果结束
  40.             遍历结束
  41.         如果结束
  42.     选择结束
  43.     返回 假
  44. 功能结束

  45. 空间结束
复制代码


如果编辑框里是 数字和字母情况下,能实现把浮标移到内容的最右边,浮标移到内容的最后1位,但当编辑框里是 文字汉字的时候就无效了,还有啥好办法
麻烦大神来拯救
回复

使用道具 举报

沙发
发表于 2015-5-2 08:31:27 | 只看该作者
var WM_KEYDOWN=25//按下一个键
var WM_KEYUP=25//释放一个键
var WM_SETFOCUS=7//获得焦点后
var WM_KILLFOCUS=8//失去焦点
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2015-5-2 08:41:33 | 只看该作者
18667006365 发表于 2015-5-2 08:31
var WM_KEYDOWN=25//按下一个键
var WM_KEYUP=25//释放一个键
var WM_SETFOCUS=7//获得焦点后

试了下没效果,可能你编辑框里文字是1两个测试的,试试每个编辑框都5个汉字测试.
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-23 04:53 , Processed in 0.234576 second(s), 23 queries .

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

© 2001-2013 Comsenz Inc.

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