2013-08-19 4 views
3

VCL 스타일을 사용하는 경우 일반 Windows 7 양식과 같이 창 그림자를 표시하는 방법이 있습니까?VCL 스타일을 사용하는 경우 창 그림자 표시

스타일의 비트 맵과 설정이 양식 테두리를 대체하지만 스타일에 영향을받는 영역 외부에있는 알파 블렌드/에어로체의 그림자가 아닌 것을 알고 있습니까?

CS_DROPSHADOW를 WindowClass.Style에 추가해도 아무런 효과가 없습니다. CS_DROPSHADOW 스타일을 사용

+0

CS_DROPSHADOW 나를 위해 작동하여 잘 작동? – RRUZ

답변

5

당신은 당신이 사용하는 코드를 보여줄 수,

type 
    TMyForm = class(TForm) 
    protected 
    procedure CreateParams(var Params: TCreateParams); override; 
    end; 

procedure TMyForm.CreateParams(var Params: TCreateParams); 
begin 
    inherited; 
    with Params do 
    WindowClass.Style := WindowClass.Style or CS_DROPSHADOW; 
end; 

enter image description here

+1

CS_DROPSHADOW 용 websearch delphi는이 문제로 고통받는 많은 사람들을 보여 주며 VCL 스타일과 관련이 없습니다. 여기에 문제가 있다는 것을 나에게는 들린다. 옆으로 : Windows.pas에 CS_DROPSHADOW가 정의되어 있지 않습니까? –

+0

차이가 있습니다. CS_DROPSHADOW는 정상적으로 작동합니다. 그러나 스타일이 지정되지 않은 그림자없는 모양 (즉, 공백 모양)을 그림의 형태 근처에두면 꽤 그림자가 더 넓어집니다. 나는 모른다. 그러나 그것에 관한 질문은 아마 그것에 관해 할 것이다. –

+0

DWM에서 그려지는 그림자에 대해 말하면 양식 스타일 후크는 dwm과 잘 작동하지 않고 그림자 효과 효과를 사용하지 않는'SetWindowRgn' 함수를 사용하기 때문에 표시 할 수 없습니다. – RRUZ

관련 문제