【VB6】【全网首发】在经典控件上使用UNICODE的方案(第2季)
首先致谢用户【系统消息】,他的一段提示给了我很大的帮助。本贴解决了在标题栏、菜单、标签、文本框、按钮、框架、列表框、组合框、单选按钮、多选按钮上使用UNICODE的困扰,而且没有使用非自带控件,不需要开启“XP风格”,纯粹就是API调用。解决方案:**** Hidden Message *****代码:**** Hidden Message *****使用微软控件的解决方案:https://www.0xaa55.com/thread-26612-1-1.html
各种WINDOWS控件使用范例大杂烩:https://www.0xaa55.com/thread-1421-1-3.html 本帖最后由 系统消息 于 2022-5-26 19:07 编辑
提示一下,HIWORD和LOWORD最好不要用除法运算,这个遇到负数的时候会有一些问题的。最好的是用结构体来做拆分:
Type DWord
LoWord As Integer
HiWord As Integer
End Type
Declare Function SplitDWord Lib "msvbvm60" Alias "#644"(ByVal DWord As Long) As DWord
Sub Test()
Dim dw As DWord
dw = SpliteDWord(&HA1B2C3D4)
?Hex$(dw.LoWord), Hex$(dw.HiWord) ' 输出:C3D4 A1B2
End Sub
同理,我们也可以用此方法来拆分RGBA颜色:
Type RGBAColor
Red As Byte
Green As Byte
Blue As Byte
Alpha As Byte
End Type
Declare Function SplitRGBA Lib "msvbvm60" Alias "#644"(ByVal Color As ColorConstants) As RGBAColor
竟然使用障眼法!假装用的是原生控件,但直接用 API 创建了控件。
不过很可能这个 Combobox 是可以找到办法像 YY菌 说的那样用 CallWindowProcW 设置 Unicode 的。 0xAA55 发表于 2022-5-25 21:35
竟然使用障眼法!假装用的是原生控件,但直接用 API 创建了控件。
不过很可能这个 Combobox 是可以找到办 ...
combox可以直接使用ImageCombo 那玩意就是系统原生的 非常感谢~~支持~~~ 障眼法可还行,这不是变成自欺欺人了吗, WeaponJang 发表于 2022-5-26 10:23
障眼法可还行,这不是变成自欺欺人了吗,
这不叫自欺欺人,这叫实现功能。程序员的事能叫自欺欺人吗? 认真学习
我觉得子类化要想个办法 不然加多少个控件 就要声明多少个 函数指针变量 有点挫
是不是这样? 就我不回复看不见是吗( qaq 系统消息 发表于 2022-5-26 18:42
提示一下,HIWORD和LOWORD最好不要用除法运算,这个遇到负数的时候会有一些问题的。最好的是用结构体来做拆 ...
本意上是不想调用API,如果要调用API的话,直接用RtlMoveMemory不就行了。dim words(1) as integer
RtlMoveMemory varptr(words(0)),varptr(dword),4
loword=words(0)
hiword=words(1) tlwh163 发表于 2022-5-27 06:47
我觉得子类化要想个办法 不然加多少个控件 就要声明多少个 函数指针变量 有点挫
是不是这样? ...
你的这个问题我早已解决了,我以前写过一个安全子类化组件,可以在类模块(包括窗体、用户控件等)中用WithEvents事件的方式来接收窗口消息,并且在IDE中断点调试不会崩溃。 正好我写爬虫需要
因为现在的网页大多数都是UTF-8编码 第一季的我会了,看看第二季 感谢分享 纯粹就是API调用?
太神奇了! 膜拜下大佬 B6】【全网首发】在经典控件上使用UN 我也学习一下! 认真学习
页:
[1]
2