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

lwx520416

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

modula-2

New Member
Member
#5
驱动级,HOOK都是画饼充饥,只有用楼上的办法,如果有些宽屏是可以自动4:3的你就成功了,不能自动或无法4:3都不行。
 

cpj7406

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

lwx520416

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

wind_2005

New Member
Member
#15
一个主窗体,主窗体为黑色(当然你可以设置为其他色),主窗体上放一个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;
---------------------总感觉上面的方法都不好,最好是把你的程序界面做到能动态调整才好,这样才更友好些
 

zbdzjx

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