使用VCL樣式時,有沒有像常規Windows 7窗體一樣顯示窗口陰影的方法?使用VCL樣式時顯示窗口陰影
我知道樣式中的位圖和設置會替換表單邊框,但不是陰影是某種受風格影響的區域之外的alpha混合/空氣樣物體?
將CS_DROPSHADOW添加到WindowClass.Style似乎沒有效果。
使用VCL樣式時,有沒有像常規Windows 7窗體一樣顯示窗口陰影的方法?使用VCL樣式時顯示窗口陰影
我知道樣式中的位圖和設置會替換表單邊框,但不是陰影是某種受風格影響的區域之外的alpha混合/空氣樣物體?
將CS_DROPSHADOW添加到WindowClass.Style似乎沒有效果。
使用CS_DROPSHADOW風格正常工作使用
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;
針對CS_DROPSHADOW delphi的網絡搜索揭示了許多患有此問題的人,並且它與VCL樣式無關。在我看來,這裏有一個問題,儘管很難重現。另外:是不是在Windows.pas中定義了CS_DROPSHADOW? –
有區別。 CS_DROPSHADOW正常工作,確定。但是當我在圖片的表格附近放置一個沒有陰影的非空白陰影 - 即一張空白的表格時,我發現它的影子會更加分散。我不知道,但問題可能就在於此。 –
如果您正在討論由DWM繪製的陰影,則無法顯示它,因爲表單樣式鉤子使用'SetWindowRgn'函數,這與dwm不能很好地協作並禁用陰影效果效果。 – RRUZ
的CS_DROPSHADOW工作對我來說,你能告訴你所使用的代碼? – RRUZ