易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

编辑框改热键框模块源码   [复制链接]

    2023-03-22 13:47:44
    高级教程源码
    易语言资源网
    2745 次浏览
    来源链接

大家在开发软件时经常需要配置众多快捷键,内置固定快捷键有时会和其他软件冲突,扩展组件库里的热键框不能用,第三方热键框支持库也有bug,论坛早期开源的一些热键框使用上也有一些局限和不便,所以花了一些时间重写了一个。
      首先易语言的窗口、组件的按下某键事件是不支持完整的小键盘按键信息的,功能上就有缺陷不完整,其次如果组件原生事件来设计,开发者就要设置按下某键、放开某键、失去焦点等事件代码,会造成很多不便。还有就是自动注册管理全局热键和窗口热键上也会增加不少代码量和负担。

      为了解决这些问题,就需要使用 SetWindowLong() 函数来接管组件的消息过程,就可以全面接管按键信息,实现全键盘快捷键支持。


目前改造的热键框实现了以下功能:

热键框支持:

1.支持组合键:Ctrl + Shift + Alt + 热键(支持小键盘按键识别)。2.支持准确的快捷键设置完成回调事件通知。

3.支持自动管理全局热键的注册和撤销,当用户设置完快捷键后内部自动进行注册,以及保存配置重启软件后也会对上次设置的热键进行自动注册,开发者不需要额外编写多余注册热键管理代码,(不需要内置的可自主使用回调事件来自行注册管理)。

4.还提供了相关的函数方法,共开发者自主注册管理热键使用


使用例子:

1.最简短的代码量,一行代码搞定。内部自动注册管理热键,热键触发会通过标签反馈事件通知

  

子程序名返回值类型公开备 注
_窗口1_创建完毕  

热键框_初始化 (窗口1, “热键框”, 0, 标签1.取窗口句柄 ())

子程序名返回值类型公开备 注
_标签1_反馈事件整数型 
参数名类 型参考可空数组备 注
参数一整数型
参数二整数型

判断 (参数一 = 热键框_取热键标识 (热键框1.取窗口句柄 ()))

调试输出 (“热键框1”)

判断 (参数一 = 热键框_取热键标识 (热键框2.取窗口句柄 ()))

调试输出 (“热键框2”)

判断 (参数一 = 热键框_取热键标识 (热键框3.取窗口句柄 ()))

调试输出 (“热键框3”)

i支持库列表   支持库注释   
spec特殊功能支持库



2.如果开发者有全局热键和局部窗口热键的需求,可采用回调事件来自主管理热键,热键注册也可使用精易模块相关命令。

  

子程序名返回值类型公开备 注
热键设置完成回调整数型 
参数名类 型参考可空数组备 注
编辑框句柄整数型
键代码整数型
功能键状态整数型
快捷键文本指针整数型指针到文本()获取
变量名类 型静态数组备 注
热键标识整数型 
快捷键文本文本型 

快捷键文本 = 指针到文本 (快捷键文本指针)

热键标识 = 热键框_取热键标识 (编辑框句柄)

如果真 (热键标识 ≠ 0)

撤销热键 (取窗口句柄 (), 热键标识)

判断 (键代码 = #退格键  键代码 = 91)

快捷键文本 = “无”

热键标识 = 注册热键 (取窗口句柄 (), 标签1.取窗口句柄 (), 功能键状态, 键代码)

快捷键文本 = 选择 (热键标识 ≠ 0, 快捷键文本, “无”)

热键框_记录快捷键信息 (编辑框句柄, 键代码, 功能键状态, 快捷键文本, 热键标识)

SetWindowTextA (编辑框句柄, 快捷键文本)

返回 (1)

i支持库列表   支持库注释   
shellEx扩展功能支持库一



3.当软件启动时,想要自动注册应用用户上次设置的快捷键设置代码例子:

  

' 启动时先读取快捷键文本到热键框,然后初始化后就会自动注册,如果是自主注册管理热键的,初始化里提供回调指针,会呼叫该回调
批量_编辑框_读取配置 (窗口1, “config.ini”)

热键框_初始化 (窗口1, “热键框”, 0, 标签1.取窗口句柄 ())

  

' 启动时先读取快捷键文本到热键框,然后初始化后就会自动注册,如果是自主注册管理热键的,初始化里提供回调指针,会呼叫该回调
热键框1.内容 = “Ctrl + Alt Num 1”

热键框2.内容 = “Ctrl + Alt Num 2”

热键框_初始化 (窗口1, “热键框”, 0, 标签1.取窗口句柄 ())




点我下载 (已有 145 次下载)

引用模块


源码文件名 模块文件名
demo.e
热键框模块1.0.ec


引用支持库


源码文件名 支持库文件名 支持库标识
demo.e 系统核心支持库 5.3 d09f2340818511d396f6aaf844c7e325
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0
热键框模块1.0.e 系统核心支持库 5.3 d09f2340818511d396f6aaf844c7e325
扩展功能支持库一 3.0 DA19AC3ADD2F4121AAD84AC5FBCAFC71
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0


[错误报告]   上一篇:1秒申请1亿个自定义数据类型.多线程写内...     下一篇: 豪华登陆改密UI设计源码...