내가하여 WS_EX_LAYERED 확장 스타일을 추가하여 layered window을 만들었습니다Win32 : 그림자없는 그림자 사각형을 만들려면 어떻게해야합니까?
는wndClass.ExStyle = wndClass.ExStyle | WS_EX_LAYERED;
Windows는 크로마 키 색상 값으로 검은 색을 사용합니다. 내가 분명 문제 만들기 위해 검은 색의 큰 경계를 떠날거야 : 윈도우가 구축 된 후
alt text http://i45.tinypic.com/2qs002q.jpg
을, 나는 use black as a chroma-key color에게 알려주기 :
SetLayeredWindowAttributes(hwnd, 0x00000000, 255, LWA_COLORKEY);
지금 팝업 창은 부분적으로 투명하게 나타납니다.
alt text http://i48.tinypic.com/2cfta3o.jpg
문제는 마지막 단계입니다. 나는 드롭 그림자 생성, 윈도우 XP 이후 CS_DROPSHADOW 클래스 스타일을 사용할 수를 사용하려면 :
이wndClass.Style = wndClass.Style | CS_DROPSHADOW;
드롭 그림자가 나타납니다,하지만 그림자는 원래의 직사각형 창을 둘러싸고 창의 고려하지 않습니다 계층화 된 창에서 제공하는 투명성 :
http://i49.tinypic.com/23lnnu9.jpg
사람이 그림자를 만들 것입니다 내가 어딘가에 놓친 마법의 옵션은 사각형이 아닌 계층 창을 존중 알고 있나요?
6px 여백/여백을 포함하지 않을 경우이 문제가 나타나는 또 다른 예가 있습니다. Windows ® 테마로 그려지는 힌트 창은 직사각형이 아닙니다. 이 창은 투명 작은 눈에 보이는 차이 잎,하지만 그림자가 표시되지 않습니다 마이크로 소프트가 작동하도록 관리하고있다
alt text http://i47.tinypic.com/30arsxk.png
, 당신은 인터넷 익스플로러에서이 힌트에서 볼 수 :
가까이 윈도우tooltips
클래스 힌트 창에서 찾고
alt text http://i46.tinypic.com/f104cj.jpg
. 사용 SpyXX - 나는 그것의 창 RECT를 얻을 수 클래스 스타일 :
http://i49.tinypic.com/f4pued.jpg
SpyXX는 말한다 :
Rectangle: (440, 229)-(544, 249), 104x20
Restored Rect: (440, 229)-(544, 249), 104x20
Client Rect: (0, 0)-(104, 20), 104x20
드롭 그림자와 함께 자체는 104x20 픽셀 인 창에 따라서 모든 점,
창 자체 외부. (CS_DROPSHADOW
과 일치합니다.)
다음으로는 tooltips
창 클래스의 스타일을 볼 수 있습니다 :
Windows Styles: 94000001
WS_POPUP 80000000
WS_VISIBLE 10000000
WS_CLIPSIBLINGS 4000000
TTS_ALWAYSTIP 1
Extended Styles: 00080088
WS_EX_LAYERED 80000
WS_EX_TOOLWIN 80
WS_EX_TOPMOST 8
흥미롭게도, 그것은) CS_SAVEBITS
(0x800
를 사용하지 않습니다; 작고 수명이 짧은 창문에 유용합니다.
CS_DROPSHADOW
(0x20000
)도 사용하지 않습니다. 그래서 지금 나는 그것이 어떻게 그것의 자신의 창 밖에 나가는 지 궁금합니까?
참고 : 투명 레이어 처리 된 창은 영역에 대해 선호되는 기술로 설명되어 있습니다.
편집 : 계층화 된 Windows는 Windows 2000과 함께 사용되었습니다. CS_DropShadow는 XP와 함께 추가되었습니다.
작업 환경에 적합한 이미지를 만드십시오. –
저는 때때로 라이브 TV 인터뷰를하는 은행에서 일하므로 이미지 편집은 대단히 감사합니다. 그렇지 않으면 나는 직업을 잃을 수 있었다. –
@ 로저 : 그 비디오를 봤어. –