AUTOHOTKEY更改WS_EX_CLIENTEDGE颜色

问题描述:

如何自定义指定或强制WS_EX_CLIENTEDGE [+ E0x200]的颜色?我想要一个更色调的颜色。AUTOHOTKEY更改WS_EX_CLIENTEDGE颜色

CustomColor   := 000055 
RequestToDisplay := "I want to change the color of WS_EX_CLIENTEDGE" 
RequestTitle  := "[REQUEST]" 

GUI Request:FONT, s9 w1000 Q5, Verdana 
GUI Request:COLOR, %CustomColor%, 000001 
GUI Request:Add, EDIT, vMyAddress cFFFFFF r3 w400 xp-11 yp-0 -VScroll Multi WantTab t8 +E0x200 +Left 
GUI Request:+LastFound +AlwaysOnTop -Caption -SysMenu 
GUI Request:MARGIN, 0, 0 
GUI Request:SHOW, x200 y300, %RequestTitle% 

ControlSend, Edit1, %RequestToDisplay%, %RequestTitle% 

return 

ESC::ExitApp 

,或者你可能会寻求在https://msdn.microsoft.com/en-us/library/windows/desktop/ms724371(v=vs.85).aspx

例如指定的参数之一,看到COLOR_ACTIVEBORDER

和AutoHotkey的SetSysColors dllcall看到https://autohotkey.com/board/topic/36724-setsyscolors-set-system-colors/

希望这有助于

斯蒂芬

+0

是的,这个AHK论坛页面显然提供了正确的DDLCall方法,但是,试图将其设置为几个CONFIGS后,什么都没有改变,我本来期望它,使用: 元素代码:= 10 \t \t \t \t ;;(5,8) ElementValueBGRHex:= 0x000000处\t \t ;;( 0xFF0000,0x0000FF) DllCall(“SetSysColors”,“Int”,10,“Int *”,Elementcode,“UInt *”,ElementValueBGRHex) –

+0

...期待看到INACTIVEBORDER至少变黑一次(此是一个即时设置,不是?)。我也不明白10代表什么与Elementcode的价值相矛盾。这两个参数有什么区别/定义? –

CP,

我的理解,WS_EX_CLIENTEDGE是一个窗口样式(https://msdn.microsoft.com/en-us/library/windows/desktop/ff700543(v=vs.85).aspx)。 来改变这个窗口样式产生的边缘的颜色,是一个完整的其他问题。 我不知道如何制定这个确切的问题。但看着你的autohotkey代码(AUTOHOTKEY changing WS_EX_CLIENTEDGE color),我看到CustomColor:= 000055,对我来说,它看起来像一个十进制的颜色值,用十进制指定,没有0x前缀(但在C/C++中是必须的)

SP。

在我的C/C++理解中,一个改变窗口元素的颜色调用SetSysColors()函数的例子见https://msdn.microsoft.com/en-us/library/windows/desktop/ms724940(v=vs.85).aspx

在该示例中,COLOR_ACTIVECAPTION用于指定窗口边框元素的颜色,它可能是您正在查找的颜色。