找回密码
 加入
搜索
查看: 1358|回复: 4

[网络通信] 【已解决】关于状态栏颜色的小问题

[复制链接]
发表于 2021-2-25 22:24:10 | 显示全部楼层 |阅读模式
本帖最后由 anythinging 于 2021-2-26 11:33 编辑

遇到个小问题,背景色和状态栏用的是同样的代码,但显示 的颜色却不一样,系统是win10帮助文件中的这句不是很理解 ,返回 RGB COLORREF 颜色, 传递颜色值必须是 16 位 BGR 颜色值, 或 RGB COLORREF 值.
感谢指点!
#include <ColorConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <WinAPITheme.au3>

Example()

Func Example()
    Local $hGUI, $hStatus
    Local $aParts[3] = [75, 150, -1]
    ; 创建 GUI
    $hGUI = GUICreate("设置状态栏背景颜色", 400, 300)
   GUISetBkColor(0x0000FF)

        $hStatus = _GUICtrlStatusBar_Create($hGUI)
    GUISetState(@SW_SHOW)

    ; to allow the setting of Bk Color at least under Windows 10
    _WinAPI_SetWindowTheme($hStatus, "", "")

    ; 设置部件
    _GUICtrlStatusBar_SetParts($hStatus, $aParts)
    _GUICtrlStatusBar_SetText($hStatus, "部件 1")
    _GUICtrlStatusBar_SetText($hStatus, "部件 2", 1)
    _GUICtrlStatusBar_SetText($hStatus, "部件 3", 2)

    ; 设置背景颜色
;~     _GUICtrlStatusBar_SetBkColor($hStatus, $CLR_MONEYGREEN)
        _GUICtrlStatusBar_SetBkColor($hStatus, 0x0000FF)

    ; 循环到用户退出.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
    GUIDelete()
EndFunc   ;==>Example

发表于 2021-2-25 23:13:40 | 显示全部楼层
一个是 RGB 一个是 BGR,顾名思义,需要替换下前两位后两位的位置,可以 Bit 位操作,也可以纯字符串操作
        ; 设置背景颜色
        _GUICtrlStatusBar_SetBkColor($hStatus, _sRGB2BGR('0x0000FF'))

Func _sRGB2BGR($sRGB)
        Return StringRegExpReplace(StringFormat('%06s', StringRegExpReplace($sRGB, '(?i)^0x', '')), '(?i)^(..)(..)(..)', '0x${3}${2}${1}')
EndFunc   ;==>_sRGB2BGR

评分

参与人数 1金钱 +40 收起 理由
anythinging + 40 神马都是浮云

查看全部评分

 楼主| 发表于 2021-2-25 22:28:27 | 显示全部楼层
之前设置gui,button一直用的是0x16进制颜色代码都是正常的,直到这次用在状态栏上不一样了。
 楼主| 发表于 2021-2-26 11:32:48 | 显示全部楼层
感谢指点,已解决。
就算知道原因也没撤,不会写A版的那个表达式。
发表于 2021-2-27 13:30:25 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-3-29 19:01 , Processed in 0.081346 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表