0

XPStyleがオンのときにチェックボックスの背景を透明にすることは可能ですか?

次の簡単なコードは、チェックボックスの背景を透明にすることができますが、XPStyleがオフに設定されている場合に限ります。

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
4

1 に答える 1

2

他の質問の1つで、これに関するバグレポートにすでにリンクしています。これはおそらくテーマエンジンやビジュアルスタイルの制限/バグであり、それを回避するには、チェックボックスをサブクラス化し、WM_PRINTなどを使用してビットマップへのペイントを実行するプラグインを作成する必要があります...

于 2012-05-23T08:03:46.003 に答える