我大概看了一下dxskin的代码, 要解决你的问题,需重载下TdxSkinFormController的GetIsSkinUsed方法。具体步骤如下: 1)覆盖原来的dxSkinGetControllerClassForWindowProc方法,指向自己的。 可加在单元的最后: initialization dxskinsform.dxSkinGetControllerClassForWindowProc := MydxSkinGetControllerClassForWindow;finalization2)改写方法和dxSkinFormController类type TMydxSkinFormController = class(TdxSkinFormController) protected function GetIsSkinUsed: Boolean; override; end;function MydxSkinGetControllerClassForWindow(AWnd: HWND): TdxSkinWinControllerClass; var AControl: TControl; begin Result := nil; if TdxSkinWinController.IsMDIClientWindow(AWnd) then Result := TdxSkinFormController else begin AControl := FindControl(AWnd); if AControl <> nil then begin if AControl is TCustomForm then Result := TMydxSkinFormController; //注意:此处更改 //Result := TdxSkinFormController; if AControl is TCustomFrame then Result := TdxSkinFrameController; if SameText(AControl.ClassName, 'TButton') then Result := TdxSkinButtonController; if SameText(AControl.ClassName, 'TPanel') then Result := TdxSkinPanelController; end; end; end;{ TMydxSkinFormController }function TMydxSkinFormController.GetIsSkinUsed: Boolean; begin Result := False; end;
或者屏蔽相关的代码
唉。。这个问题必须解决啊。。
要解决你的问题,需重载下TdxSkinFormController的GetIsSkinUsed方法。具体步骤如下:
1)覆盖原来的dxSkinGetControllerClassForWindowProc方法,指向自己的。
可加在单元的最后:
initialization
dxskinsform.dxSkinGetControllerClassForWindowProc := MydxSkinGetControllerClassForWindow;finalization2)改写方法和dxSkinFormController类type
TMydxSkinFormController = class(TdxSkinFormController)
protected
function GetIsSkinUsed: Boolean; override;
end;function MydxSkinGetControllerClassForWindow(AWnd: HWND): TdxSkinWinControllerClass;
var
AControl: TControl;
begin
Result := nil;
if TdxSkinWinController.IsMDIClientWindow(AWnd) then
Result := TdxSkinFormController
else
begin
AControl := FindControl(AWnd);
if AControl <> nil then
begin
if AControl is TCustomForm then
Result := TMydxSkinFormController; //注意:此处更改
//Result := TdxSkinFormController;
if AControl is TCustomFrame then
Result := TdxSkinFrameController;
if SameText(AControl.ClassName, 'TButton') then
Result := TdxSkinButtonController;
if SameText(AControl.ClassName, 'TPanel') then
Result := TdxSkinPanelController;
end;
end;
end;{ TMydxSkinFormController }function TMydxSkinFormController.GetIsSkinUsed: Boolean;
begin
Result := False;
end;