0xAA55 发表于 2017-9-19 04:56:22

【VB6】获取输入法候选词列表



不要问我为什么要输入“啊实打实大苏打”……

和上次那个C语言的实例不同,这个因为VB6有自己的窗口编辑器,你需要把消息处理函数Hook了才能自己处理输入法的消息(而别的消息都被VB封装成了控件或者窗体事件了)。

Hook的方式依然是用GetWindowLong(hWnd, GWL_WNDPROC)来取得旧消息处理函数的地址,然后用SetWindowLong hWnd, GWL_WNDPROC, AddressOf 你的消息处理函数的地址

类似的例子,VB6处理鼠标滚轮事件,也是需要Hook消息处理函数的。
参考帖子:
【VB6】响应鼠标滚轮事件
【VB6】鼠标滚轮支持模块

因为你的消息处理函数在VB6里调试执行的时候是解释执行,所以你不能在Hook了消息处理函数后再用VB6的IDE暂停执行。否则你的VB6的整个IDE都无法处理你的窗口消息,最后崩掉。

回帖后查看源码。
**** Hidden Message *****

参考:https://www.0xaa55.com/thread-430-1-1.html

oshi 发表于 2017-9-19 06:00:15

好早就发出来了.这么勤力

执笔写清幽 发表于 2017-9-19 10:10:07

感谢老哥!

bigwind 发表于 2017-9-19 17:36:44

东西不错

Golden Blonde 发表于 2017-9-26 11:21:20

我记得这个你发过几个语言版本的了。忽然发现,可以把你这玩意整合进我的FAKE-DOS-EDITOR里了!

二十六 发表于 2017-10-18 11:06:44

蛮有想法的一个功能

阿呆在上海 发表于 2017-10-23 17:32:31

今天学习,来得及吗:'(

xxdoc 发表于 2018-5-6 08:30:32

这个可以看看.不错

搬砖工 发表于 2018-9-15 00:33:35

刚好想相关的东西

晗涵宁 发表于 2019-10-19 13:47:56

好好学习一下

hxin123456 发表于 2020-4-3 21:09:46

看看学习下

wlddd 发表于 2021-9-1 14:11:06

这个看着不错啊,学习一下

完玩 发表于 2021-12-15 14:04:03

学习学习 楼主威武

大宝 发表于 2021-12-17 14:48:17

值得借鉴,留存

VB小白 发表于 2022-4-5 11:37:04

东西不错

scdn2022 发表于 2023-4-7 23:27:14

谢谢分享

gujin163 发表于 2024-2-7 11:06:28

啥也不说了,帖子就是带劲!

liu496324 发表于 2024-6-1 16:24:16

瞻仰一下:lol

xindaodan 发表于 2024-7-6 20:50:57

不错,学习一下

QZhi 发表于 2024-7-7 16:24:09

感谢分享!
下载学习!
页: [1] 2
查看完整版本: 【VB6】获取输入法候选词列表