📄 ba41.htm
字号:
<HTML>
<HEAD>
<TITLE>应用程序巧变脸</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</head>
<p align="center"><script src="../../1.js"></script></a>
<BODY topMargin=4 vLink=#0000ff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD height="52">
<DIV align=center>
<CENTER>
<table border=0 cellpadding=0 cellspacing=0 width=679 align="center">
<tbody>
<tr>
<td width=200 height="59">
</TD></TR><!--msnavigation--></TBODY></TABLE>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tbody>
<tr><!--msnavigation--><td valign=top height="123">
<div align=center>
<table border=1 bordercolor=#b9d9ff cellpadding=0 cellspacing=0
class=table width=755>
<center>
<tr>
<td width="100%" height="3">
<div align="center"> <strong><big><font
class="12v">应用程序巧变脸</font> </big></strong></span></div>
</td>
</tr>
<tr>
<td
width="100%" class="unnamed1" height="124">
<div align="left">
<p align="center"><big><br>
</big></p>
<p align="center"><font class="12v"> <font size="-1" face="宋体">随着显示器和显示卡的价格越来越便宜,我们也享受到了大屏幕、高分辨率彩显带来的高品质画面。然而编程人员却遇到了一个问题:如何使应用程序在不同分辨率下看起来效果一样(窗体在屏幕上的相对位置以及窗体中的控件的相对位置都不变),同时界面中的文字(如各控件的标题以及说明等)也不发生明显的变化。看看我们是如何使应用程序变脸的吧!<br>
<br>
<br>
一、编程原理<br>
<br>
<br>
在Visual Basic应用程序中,屏幕(Screen)是一个对象。其Width和Height属性以Twip为单位反映出屏幕的宽度和高度。而TwipsPerPixelX和TwipsPerPixelY这两个属性只与硬件有关,而与屏幕上可设定的分辨率无关。将Width除以TwipsPerPixelX可以计算出屏幕的水平分辨率(像素数),同样将Height除以TwipsPerPixelY也可以计算出屏幕的垂直分辨率。要想保持一个窗口或是控件的物理大小不变,只要计算出设计时的分辨率与实际运行时的分辨率的比值,然后根据这个比值来调节窗口和其中的控件的大小和相对位置,以及显示的字体尺寸,就可以保持同一应用程序的窗口在不同的系统下的物理外观(当然在不同尺寸的显示器上只能保持比例不变,物理大小还是不同的)。根据这一原理,可以编制一个通用的子程序,可放入任意的应用程序的启动过程中调用。<br>
<br>
<br>
二、示例程序<br>
<br>
<br>
通用程序的代码如下:(子程序名SetDeviceIndependentWindow)<br>
<br>
Sub SetDeviceIndependentWindow(ThisForm As Form) <br>
<br>
′ThisForm,就是要改变外观的窗体名<br>
<br>
Dim DesignX As Integer ′代表设计系统的水平分辨率<br>
<br>
Dim DesignY As Integer ′代表设计系统的垂直分辨率<br>
<br>
Dim XFactor As Single ′水平比例因子<br>
<br>
Dim YFactor As Single ′垂直比例因子<br>
<br>
Dim X As Integer ′ For/Next循环中的变量<br>
<br>
DesignX% = 800: DesignY% = 600 <br>
<br>
′假设设计时的分辨率为800×600<br>
<br>
′计算当前屏幕尺寸与设计时使用的屏幕尺寸的比值<br>
<br>
XFactor =(Screen.Width / Screen.TwipsPerPixelX)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -