打开XPStyle时,使CheckBox的背景透明

时间:2012-05-23 05:25:05

标签: installer nsis

当XPStyle开启时,是否可以使Checkboxes背景透明?

以下简单代码可以使Checkbox背景透明,但仅限XPStyle设置为off。

在保持XPStyle的同时,有没有办法让复选框的背景透明?我真的希望如此,否则我有很大的问题。无论他们有多参与,我都愿意接受这些想法。

如果没有办法,是否可以改变复选框背景的不透明度 - 也许我可以让它稍微透明(50%)?

!include "LogicLib.nsh"
!include "MUI2.nsh"
!include WinMessages.nsh

OutFile "abc.exe"
Page Custom CustomPageInitialise

XPStyle on

Function CustomPageInitialise
    nsDialogs::Create 1018
    Pop $0
    SetCtlColors $0 0xFF0000 0x00FF00

    ${NSD_CreateCheckbox} 25u 20u 100% 20u "Version 8"
    Pop $1
    SetCtlColors $1 0xFF0000 transparent                        # Set tranparent color for control 
    ${NSD_AddExStyle} $1 ${WS_EX_TRANSPARENT}|${WS_EX_TOPMOST}  # Add special style 

    nsDialogs::Show
FunctionEnd

Section dummy
SectionEnd

1 个答案:

答案 0 :(得分:2)

我已经在您的其他一个问题中与bug report相关联。这可能是主题引擎和/或视觉样式中的限制/错误,并且要解决它,您可能必须创建一个插件,该子插件将复选框子类化并使用WM_PRINT或类似的东西对位图执行绘制...