这段代码的功能主要是创建一个具有暗黑模式样式的 ComboBox 和 Edit 控件,并获取 ComboBox 的子控件句柄来进行样式设置。
暗黑滚动进度条.ahk
; https://www.autohotkey.com/boards/viewtopic.php?f=13&t=94661
PtrType := A_PtrSize ? "Ptr" : "Uint"
PtrSize := A_PtrSize ? A_PtrSize : 4
Gui, +LastFound
WinGet, hWindow,ID
Gui, Add, Edit, ym w500 h200 HwndHCBB
Gui, Add, ComboBox, w400 r6 hwndHCBB, a|b|c|e|f|g|h|i|j|k
Gui, Show, , ComboBox & Edit
GetComboBoxInfo(HCBB, CBBInfo)
HCBBEDIT := NumGet(CBBInfo, 40 + PtrSize, PtrType)
HCBBLIST := NumGet(CBBInfo, 40 + (2 * PtrSize), PtrType)
HCBB += 0
ControlSetText, , % "ComboBox: " . (HCBB + 0) . " - Edit: " . HCBBEDIT . " - ListBox: " . HCBBLIST, ahk_id %HCBBEDIT%
DllCall("UxTheme.DLL\SetWindowTheme", "Ptr", HCBBLIST, "Str", "DarkMode_Explorer", "Ptr", 0)
Return
GuiClose:
ExitApp
GetComboBoxInfo(HCBB, ByRef CBBI) {
; http://msdn.microsoft.com/en-us/library/bb775939%28VS.85%29.aspx
Global PtrSize, PtrType
CBBISize := 40 + (3 * PtrSize)
VarSetCapacity(CBBI, CBBISize, 0)
NumPut(CBBISize, CBBI, 0, "UInt")
Return DllCall("User32.dll\GetComboBoxInfo", PtrType, HCBB, PtrType, &CBBI)
}
声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。

评论(0)