我在程序里面使用了VCLSkin皮肤控件版本2.74
控件放在数据模块窗体里面属性设置为SkinFormType属性设置为sfMainform
然后MDI主窗体的Create事件这样写
procedure TfrmMain.FormCreate(Sender: TObject);
begin
DoubleBuffered:=True; Left:=0; Top:=0; WindowState:=wsMaximized; ImgContext.Picture.LoadFromFile(GetContextImgPath); //装载背景图片 FClientInstance := MakeObjectInstance(ClientWndProc); FPrevClientProc := Pointer(GetWindowLong(ClientHandle,GWL_WNDPROC)); SetWindowLong(ClientHandle,GWL_WNDPROC, LongInt(FClientInstance));
end;但是程序运行的时候主窗体不会最大化
为什么啊?
有用过这个控件的同道们看看
控件放在数据模块窗体里面属性设置为SkinFormType属性设置为sfMainform
然后MDI主窗体的Create事件这样写
procedure TfrmMain.FormCreate(Sender: TObject);
begin
DoubleBuffered:=True; Left:=0; Top:=0; WindowState:=wsMaximized; ImgContext.Picture.LoadFromFile(GetContextImgPath); //装载背景图片 FClientInstance := MakeObjectInstance(ClientWndProc); FPrevClientProc := Pointer(GetWindowLong(ClientHandle,GWL_WNDPROC)); SetWindowLong(ClientHandle,GWL_WNDPROC, LongInt(FClientInstance));
end;但是程序运行的时候主窗体不会最大化
为什么啊?
有用过这个控件的同道们看看
这类控件应用在MDI同样也存在硬伤,最终也没有全部解决。
最大化问题我也遇到过,是显示fastreport报表的时候,fr的窗体已经最大化了,但是显示起来还是正常状态,还要手动点一次,好像是把对话框拉到跟屏幕一样大小,下次再启动就正常了,你可以试试,怀疑vclskin将状态写到注册表了