TC官方合作论坛

 找回密码
 立即注册
查看: 252|回复: 16

[已解决] 无奈,新手不会TAB切换编辑框!

[复制链接]
发表于 2020-11-16 14:05:27 | 显示全部楼层 |阅读模式

马上加入TC

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

x
本人新手,不会使用TAB切换编辑框,看了官方的案例,全英文,复制粘贴过来,各种报错各种不能用。有米有高手写个中文的给我看看!账号栏 为 编辑框0
密码栏 为 编辑框1
希望和官方案例一样,打开窗口,鼠标就自动在账号栏,然后可以按TAB键,切换编辑框0 和 编辑框1


Dingtalk_20201116135559.jpg
回复

使用道具 举报

发表于 2020-11-16 16:47:53 | 显示全部楼层
//消息路由功能
功能 登录_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)
    如果(消息==256)
        如果(w参数==9)//当按下TAB键的时候设置下一个控件的焦点
            如果(句柄==控件获取句柄("编辑框0"))
                窗口设置焦点(控件获取句柄("编辑框1"))
                返回 真
            否则
                如果(句柄==控件获取句柄("编辑框1"))
                    窗口设置焦点(控件获取句柄("编辑框0"))
                    返回 真
                    
                结束
               
            结束
        结束
    结束
    返回 假
结束
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-17 08:42:55 | 显示全部楼层
rxuehao 发表于 2020-11-16 16:47
//消息路由功能
功能 登录_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)
    如果(消息==256)

理解是这么理解。可是我放在我的代码里面,怎么没用呀。需要申明哪些全局变量吗?
回复 支持 反对

使用道具 举报

发表于 2020-11-17 17:57:43 | 显示全部楼层
hyw05310 发表于 2020-11-17 08:42
理解是这么理解。可是我放在我的代码里面,怎么没用呀。需要申明哪些全局变量吗? ...

什么变量都不需要!
你贴上你的代码我给你看看!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-18 09:01:50 | 显示全部楼层
rxuehao 发表于 2020-11-17 17:57
什么变量都不需要!
你贴上你的代码我给你看看!

//开始按钮_点击操作

功能 登录_开始_点击()
    变量 i = 编辑框获取文本("编辑框0","登录")
    变量 j = 编辑框获取文本("编辑框1","登录")
    如果(i==1&&j==1)
        消息框("登录成功")
        控件关闭子窗口("登录",0)
    否则
        消息框("登录失败 , 请联系管理员")
    结束
   
结束

//退出按钮_点击操作
功能 登录_注册_点击()
    控件打开子窗口("注册")
结束
//点击关闭_执行操作
功能 登录_关闭()
    控件关闭子窗口("登录",0)
    控件关闭子窗口("自动",0)
结束

功能 按钮0_点击()
    //这里添加你要执行的代码
    控件打开子窗口("注册",真)
结束


//消息路由功能
功能 登录_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)
    如果(消息==256)
        如果(w参数==9)//当按下TAB键的时候设置下一个控件的焦点
            如果(句柄==控件获取句柄("编辑框0"))
                窗口设置焦点(控件获取句柄("编辑框1"))
                返回 真
            否则
                如果(句柄==控件获取句柄("编辑框1"))
                    窗口设置焦点(控件获取句柄("编辑框0"))
                    返回 真
                    
                结束
               
            结束
        结束
    结束
    返回 假
结束
回复 支持 反对

使用道具 举报

发表于 2020-11-18 11:59:08 | 显示全部楼层
本帖最后由 bestkakkoii 于 2020-11-18 12:02 编辑

另外再提个问题 如果放在父窗口的话tab键是有作用的可放进选项卡里就没有作用了
请问要怎么解?

  1. var WM_KEYDOWN=25
  2. var WM_KEYUP=25
  3. var WM_SETFOCUS=7
  4. var WM_KILLFOCUS=8
  5. var VK_TAB=9
  6. var maxcon=3
  7. var 控件名=array("edit0","edit1","passcode")

  8. function tabControl_pretranslatemessage(hwnd, message, wParam, lParam, time, x, y)
  9.     select(message)
  10.         case 512      

  11.         case 516

  12.         case 256
  13.         if(wParam==VK_TAB)
  14.             for(var i=0;i<maxcon;i++)
  15.                 if(hwnd==controlgethandle(控件名[i]))
  16.                     if(i==(maxcon-1))
  17.                         windowsetfocus(controlgethandle(控件名[0]))
  18.                         return true
  19.                     end
  20.                     windowsetfocus
  21.                     return true
  22.                 end
  23.             end           
  24.         end
  25.     end
  26.     freememory(fatherhwnd)
  27.     return false
  28. end
复制代码

回复 支持 反对

使用道具 举报

发表于 2020-11-18 12:38:12 | 显示全部楼层
hyw05310 发表于 2020-11-18 09:01
//开始按钮_点击操作

功能 登录_开始_点击()

如果登录是子窗口的话!你是不是应该加上父窗口参数呢?
遇到问题先调试输出一下!例如:消息路由有没有消息,W参数是不是TAB、编辑框句柄是否获取成功
目测你这个是没有获取到编辑框句柄的!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-18 13:43:38 | 显示全部楼层
本帖最后由 hyw05310 于 2020-11-18 13:46 编辑
rxuehao 发表于 2020-11-18 12:38
如果登录是子窗口的话!你是不是应该加上父窗口参数呢?
遇到问题先调试输出一下!例如:消息路由有没有 ...

确实,谢谢老哥提醒。增加了相关参数,可以正常使用了。我把源码贴出来,方便以后的人学习!

功能 登录_消息路由(句柄,消息,w参数,l参数,时间,x坐标,y坐标)
    var VK_TAB=9
    如果(消息==256)
        如果(w参数==9)//当按下TAB键的时候设置下一个控件的焦点
            如果(句柄==控件获取句柄("编辑框0","登录"))
                返回 真
            否则
                如果(句柄==控件获取句柄("编辑框1","登录"))
                    窗口设置焦点(控件获取句柄("编辑框0","登录"))
                    返回 真
                结束
            结束
        结束
    结束
    返回 假
结束
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-18 13:45:51 | 显示全部楼层
bestkakkoii 发表于 2020-11-18 11:59
另外再提个问题 如果放在父窗口的话tab键是有作用的可放进选项卡里就没有作用了
请问要怎么解?

这个我不知道呀,我也是新手,一直在提问,以前有很多大佬在论坛回复的。现在回复的人也少了。
回复 支持 反对

使用道具 举报

发表于 2020-11-18 13:54:19 | 显示全部楼层
bestkakkoii 发表于 2020-11-18 11:59
另外再提个问题 如果放在父窗口的话tab键是有作用的可放进选项卡里就没有作用了
请问要怎么解?

解决方案还是很多的!
例如:1、把编辑框放置到主面板上!平时把编辑框不显示!当选项卡被点击的时候显示编辑框,这样消息路由是能够获取到参数的。
2、学习鬼玺大佬的更新窗口风格!
3、下钩子
还有好几种!但是最简单的还是我说的第一种。!简单得一批!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2020-12-4 22:19 , Processed in 0.045698 second(s), 26 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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