我的程序在800*600下显示正常 1024*768 很难看 请问如何解决(50分)

  • 主题发起人 主题发起人 xuzhsyf1
  • 开始时间 开始时间
X

xuzhsyf1

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序在800*600下显示正常 1024*768 很难看 请问如何解决
 
使用tscreen类
 
将Form的Scaled设为true即可,
这样Form及其上的控件都适应屏幕的分辨率了
测分辨率的方法是:
GetDeviceCaps(GetDC(frmMain->Handle),HORZRES);
//横
GetDeviceCaps(GetDC(frmMain->Handle),VERTRES);
//纵
可测出是 640x480 , 800x600 , 1024x768 ......
 
可不可以介绍得再详细一点 分不够可以再夹
 
可以在程序启动时,通过程序把屏幕改为800*600,关闭时再把它还原不就行了吗?
至于这怎样做,你可以查查DFW以前的贴子。
 
cwmdelpher:
你的这个方法好像不能处理label的位置,因为label没有Handle,你不能移动他的位置
界面好像还是不是很好,我曾经用你说的方法试过一次,效果不是很好,现在还没有找到好的方法
 

//动态设置分辨率 抄来的
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;
lpDevMode.dmPelsWidth := x;
lpDevMode.dmPelsHeight := y;
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
end;
end;
 
以前我也遇到过这样的问题,主要是form的字体设置有误!你把字体设置为中文宋体10号,
 
后退
顶部