?? 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 + -