能否通过编程,将宽屏变普屏?(100)

  • 主题发起人 lwx520416
  • 开始时间
L

lwx520416

Unregistered / Unconfirmed
GUEST, unregistred user!
我是用普通屏设计的程序,但在宽屏下显示的特别难看,能否通过编程,将宽屏变普屏(将屏幕两边变黑),即:执行程序时变普屏退出程序后,自动还原宽屏?可以实现吗?
 
A

apiao

Unregistered / Unconfirmed
GUEST, unregistred user!
可以,不过那得是驱动级的程序。你能编么?[:D]
 

白河愁

Unregistered / Unconfirmed
GUEST, unregistred user!
可以,也不用驱动级,HOOK就行。
 

风铃夜思雨

Unregistered / Unconfirmed
GUEST, unregistred user!
程序启动时执行设置屏幕分辨率为1024X768的代码不就行了退出再恢复
 
M

modula-2

Unregistered / Unconfirmed
GUEST, unregistred user!
驱动级,HOOK都是画饼充饥,只有用楼上的办法,如果有些宽屏是可以自动4:3的你就成功了,不能自动或无法4:3都不行。
 
A

apiao

Unregistered / Unconfirmed
GUEST, unregistred user!
将屏幕自动调整为1024*768,说起来容易,液晶屏显示能不变形么?想问题咋就那么简单。
 
M

modula-2

Unregistered / Unconfirmed
GUEST, unregistred user!
楼上,现在的液晶可以4:3变,不信买个来试试
 
A

apiao

Unregistered / Unconfirmed
GUEST, unregistred user!
不好意思,我可能孤陋寡闻了
 
L

lwx520416

Unregistered / Unconfirmed
GUEST, unregistred user!
问题是笔记本电脑不能设置4:3,还有其它办法吗?
 
C

cpj7406

Unregistered / Unconfirmed
GUEST, unregistred user!
1)我认为这是软件的固有问题,应该完善软件使其尽可能适应各种硬件环境。如果你开发Web系统,开发网站,那是铁板钉钉需要这么做的。2)软件尚未完善之前,可以通过非技术方法(例如和客户沟通)使客户先忍受一段时间,给你完善软件的时间。3)对于现代的各种大屏幕显示器,调整其合适的分辨率来适应软件,难以行得通,只会从一种丑陋到另一种丑陋。
 

寻路

Unregistered / Unconfirmed
GUEST, unregistred user!
还是改善你的软件吧!
 
W

wino

Unregistered / Unconfirmed
GUEST, unregistred user!
楼上两位说得有道理,如果注重外观,从一开始设计时,就把不同分辨考虑进去
 
L

lwx520416

Unregistered / Unconfirmed
GUEST, unregistred user!
我是这样想的,无论什么样的屏幕,我都将它设置为正常的屏幕(4:3),既分辩率为:1024X768,这样程序可以适合任意一款显示器,问题是怎样用程序来实现?能不能实现?请多多指教!!
 
K

kkyy

Unregistered / Unconfirmed
GUEST, unregistred user!
别的没影响吧,最大化时限制一下窗口大小即可,怎么限制...自己去查查吧,很多代码
 
W

wind_2005

Unregistered / Unconfirmed
GUEST, unregistred user!
一个主窗体,主窗体为黑色(当然你可以设置为其他色),主窗体上放一个panel,所有控件都放在这个panel内。程序打开后,主窗体最大化,panel 根据高度的一定比值来设置宽度。-------------------------另外,给你一个修改分辨率的函数:  function TfrmMain.DynamicResolution(X, Y: word): BOOL; 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;
---------------------总感觉上面的方法都不好,最好是把你的程序界面做到能动态调整才好,这样才更友好些
 
Z

zbdzjx

Unregistered / Unconfirmed
GUEST, unregistred user!
同意楼上的说法。如果真要是4:3,宽屏的两边显示黑色,只能用panel了。我们的做法是,设置好align,那样,即使是宽屏,内容也会集中到左边,顶多右边会空一些。
 

Similar threads

S
回复
0
查看
912
SUNSTONE的Delphi笔记
S
S
回复
0
查看
743
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
顶部