2012-05-23 5 views
0

XPStyle이 켜져있을 때 확인란 배경을 투명하게 만들 수 있습니까?XPStyle이 켜져있을 때 CheckBox의 배경을 투명하게 만듭니다.

다음 간단한 코드는 확인란 배경을 투명하게 만들 수 있지만 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 

답변

2

는 이미 다른 질문 중 하나에 이것에 대해 bug report에 연결. 이것은 아마도 테마 엔진 및/또는 비주얼 스타일의 제한/버그 일 수 있으며이를 해결하려면 아마도 체크 박스를 서브 클래스 화하고 WM_PRINT 또는 그와 비슷한 비트 맵에 페인팅을 수행하는 플러그인을 만들어야합니다.

+0

내게 주신 모든 정보에 감사드립니다 :). NSIS에서 win32 컨트롤을 하위 클래스 화하는 방법을 보여주는 예제를 알고 계십니까? C/C++에서 네이티브 WinAPI 서브 클래 싱 (listclasses 등등)을 많이 해왔습니다. –

+0

플러그인없이 NSIS에서 하위 클래스를 만들 수 없습니다. 일반적인 하위 클래스 플러그인이 있지만 사용하기가 어렵고 그 위에있는 비트 맵을 다루는 것이 더 많은 작업입니다. 이 특정 작업을위한 새로운 플러그인을 작성하는 것이 좋습니다 ... – Anders

관련 문제