VF6中如何使建立的程序自动使用800*600显示方式?(50分)

  • 主题发起人 主题发起人 czzz
  • 开始时间 开始时间
C

czzz

Unregistered / Unconfirmed
GUEST, unregistred user!
我用VF6做一个数据库管理系统,采用了菜单,但程序启动后执行菜单时,
系统默认采用640*480显示方式,能否让它自动显示为800*600方式,需要加什么
语句,加在何处?
 
-->抄的
假设你在800*600的分辨率下设计的form,第一步:
inplementation
const
ScreenWidth: LongInt = 800; {I designed my form in 800x600 mode.}
ScreenHeight: LongInt = 600;

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
scaled := true;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) div ScreenHeight;
width := longint(width) * longint(screen.width) div ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end;

下一步,要让每个子控制的字体改变到合适的大小:
type
TFooClass = class(TControl); { needed to get at protected }
{ font property }

var
i: integer;
begin
for i := ControlCount - 1 downto 0 do
TFooClass(Controls).Font.Size :=
(NewFormWidth div OldFormWidth) *
TFooClass(Controls).Font.Size;
end;

 
加在启动配置文件中
 
function DynamicResolution(X, Y: word): BOOLEAN;
var
lpDevMode: TDeviceMode;
begin
Result := EnumDisplaySettings(nil, 0, lpDevMode);
if Result then
begin
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
sx:=lpDevMode.dmPelsWidth;
sy:=lpDevMode.dmPelsHeight;
lpDevMode.dmPelsWidth := X;
lpDevMode.dmPelsHeight := Y;
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
end;
end;

640*480:
DynamicResolution(640,480);
800*600:
DynamicResolution(800,600);
 
各位:
不要搞错,是VF6环境!!!
 
还没有人回答吗?
 
this.width=800
this.height=600

--- <b>this</b> in VF is the same as <b>self</b> in pascal
 
sorry, 加在 Active 事件就可以了
 
ahxia:
好象窗体才有这个事件,在执行菜单时没有用什么窗体,你的方法不行。
 
有没有人回答???
 
没有人回答???????
不是delphi
 
好不容易帮你找到的:
先做一个主程序,在主程序中执行菜单,执行菜单前加入下面的命令:
with _SCREEN
.Width=800
.Height=500
endwith
就可以了。
 
接受答案了.
 
后退
顶部