• <abbr id="kam3m"><form id="kam3m"></form></abbr>

    <u id="kam3m"><li id="kam3m"></li></u>

  • <table id="kam3m"></table>
    
    

    <u id="kam3m"></u>
    18禁无遮挡啪啪无码网站,真人无码作爱免费视频,2018年亚洲欧美在线v,国产成人午夜一区二区三区 ,亚洲精品毛片一区二区,国产在线亚州精品内射,精品无码国产污污污免费,国内少妇人妻偷人精品
    首頁 > 文章中心 > 正文

    軟件界面

    前言:本站為你精心整理了軟件界面范文,希望能為你的創作提供參考價值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。

    軟件界面

    摘要針對軟件界面因窗口大小的調整而出現的各類問題,本文提出了解決這類問題的技術、方法及有關的注意事項,并給出了用VB編寫的范例程序。

    關鍵詞軟件界面;同比例縮放;實現技術;VB;對象變量

    1引言

    界面是軟件的臉面!軟件是否好用、能否被用戶所接受,界面起著很重要的作用。然而,在我們所使用的各類軟件中,常常出現軟件界面因窗口大小的調整而發生變化,以至于出現捉襟見肘、比例失調甚至“獻丑”的窘境;也正因如此,許多軟件開發者又采用較為保守的設計思想,將軟件界面設計成Fixed,禁止用戶調整大小;還有一些軟件在改變顯示分辨率后出現界面不完整的現象,如Windows的顯示屬性對話框,當顯示分辨率從1024×768調整到640×480時,無法看到界面底部的三個關鍵按鈕:“確定”、“取消”和“應用”;除非重新啟動計算機!這一切均給用戶帶來諸多不便,究其根源還在于開發者只重視了軟件初始界面的設計,而對軟件窗口縮放后所出現的缺陷或估計不足或缺乏對策。能否讓軟件界面的大小隨用戶的需求自由改變,而界面中的各個對象隨窗口同縮放,做到軟件界面始終美麗如初呢?為此,筆者進行了有益的探索,并在VB中得以實現。

    2實現技術

    為了保證軟件界面始終如一、自適應各種窗口大小,必須做到窗口中的各個對象以及對象的字號、圖像等屬性隨窗口同縮放。為此,在軟件啟動時首先要用全局數組將原始窗口的大小以及窗口中各個對象的大小、位置及字號等記錄下來。然后在窗口的Resize事件中進行判斷和調整:當窗口寬度改變時,窗口的放大率K=現窗口寬度÷原始窗口寬度,為保證窗口的比例不變,窗口的高度應調整到原始窗口高度的K倍;反之,當窗口高度改變時,窗口的放大率K=現窗口高度÷原始窗口高度,同樣需將窗口的寬度調整到原始窗口寬度的K倍;如果窗口的寬高同時改變,則視為窗口的寬度改變即可。最后,為保證窗口中的各個對象同比例縮放,對象的大小(Width、Height屬性)、位置(Left、Right屬性)及字號(FontSize屬性)也應在其原始值的基礎上乘以K。

    為了實現上述功能,用一個二維的全局數組記錄每一個對象的Left、Top、Width、Height和FontSize屬性,然后以對象變量和二維數組的行索引為參數定義兩個通用過程GetData和SetData,前者用于獲取對象的原始屬性值,后者用于設置對象的新屬性值。

    此外,還要注意以下幾個問題:

    (1)軟件啟動時,如果窗口的寬度大于屏幕的寬度或窗口的高度大于屏幕的高度時,應使其與屏幕同寬或同高,以避免出現類似于Windows的顯示屬性對話框在分辨率變化時所出現的尷尬局面。

    (2)一般應用軟件的窗口在最大化時會以屏幕的尺寸為依據進行雙向調整,這樣就會破壞原有窗口的比例。如果想讓窗口最大化但又不想破壞窗口的比例,那么在最大化按鈕被單擊時,首先使窗口的左上角與屏幕的左上角重合,然后使窗口的一邊與屏幕同寬或同高,另一邊則按比例放大;究竟要將哪一邊調整到屏幕的尺寸要看窗口的寬高比值:若窗口偏寬(窗口寬高比>屏幕寬高比),那么應以屏幕寬度為準作為窗口的寬度,否則應以屏幕高度為準作為窗口的高度;這樣可以保證比例不變,而窗口盡可能最大化。

    (3)當窗口的高度被調整到非常小,甚至只剩標題欄的高度時,應以窗口的最小寬度(有最大化等按鈕時,其值約為1700Twip)為準調整窗口的高度。

    (4)對于界面中所顯示的圖像,最好用圖像控件Image作為對象,因為此類控件一般都有拉伸屬性Stretch,只要將其設置成True后顯示在其中的圖像就會隨圖像框的伸縮而自動拉伸,始終呈現給用戶的是一幅完整的圖像。

    3范例程序

    3.1界面設計

    啟動VB后在窗體中添加四個控件:一個圖像框控件Img(先將拉伸屬性Stretch設置成True,然后用Picture屬性添加一幅圖片)、一個標簽控件Lab(將AutoSize屬性設置成True,并設置好標題)、一個文本框控件Txt(將MultiLine屬性設置成True,并設置好文本)和一個按鈕控件Cmd(將標題改為“界面增幅10%”,單擊此按鈕時窗口及各個對象放大10%)。軟件界面如圖1所示。3.2編寫代碼

    DimLastWidth%''''窗體上一次的寬度

    Dima%(1To5,1To5)''''對象的原始數據

    DimkAsSingle''''窗口的放大率

    PrivateSubGetData(OAsObject,nAsInteger)

    OnErrorResumeNext

    a(n,1)=O.Left

    a(n,2)=O.Top

    a(n,3)=O.Width

    a(n,4)=O.Height

    a(n,5)=O.FontSize

    Ifn=1Thena(1,4)=O.ScaleHeight:LastWidth=a(1,4)

    EndSub

    PrivateSubSetData(OAsObject,nAsInteger)

    OnErrorResumeNext

    O.Left=a(n,1)*k

    O.Top=a(n,2)*k

    O.Width=a(n,3)*k

    O.Height=a(n,4)*k

    O.FontSize=a(n,5)*k

    EndSub

    PrivateSubForm_Load()

    GetDataFrm,1

    GetDataImg,2

    GetDataLab,3

    GetDataTxt,4

    GetDataCmd,5

    IfMe.Width>Screen.WidthOrMe.Height>Screen.HeightThenMe.WindowState=2

    EndSub

    PrivateSubForm_Resize()

    IfMe.WindowState=1ThenExitSub''''最小化

    IfMe.WindowState=2Then''''最大化

    Me.WindowState=0

    Me.Move0,0

    IfScreen.Width/Screen.Height>=a(1,3)/a(1,4)Then

    Me.Height=Screen.Height

    Else

    Me.Width=Screen.Width

    EndIf

    EndIf

    IfLastWidth<>Me.WidthThen''''寬度變化

    k=Me.Width/a(1,3)

    Me.Height=a(1,4)*k+395

    Else''''高度變化

    k=Me.ScaleHeight/a(1,4)

    Me.Width=a(1,3)*k

    EndIf

    SetDataImg,2

    SetDataLab,3

    SetDataTxt,4

    SetDataCmd,5

    IfMe.Height<=a(1,4)/a(1,3)*1680Then

    Me.Height=a(1,4)/a(1,3)*1680+395

    EndIf''''保證最小窗口也成比例

    LastWidth=Me.Width

    EndSub

    PrivateSubCmd_Click()

    Me.Width=Me.Width*1.1

    EndSub

    3.3運行情況

    程序運行后,不管是拉伸邊框、單擊放大10%按鈕,還是單擊最大化按鈕,窗口中的四個對象同比例進行縮放,屏幕上始終看到的是一個如圖1所示的完整的比例不變的界面。

    4結束語

    本文雖然給出的范例程序是基于VB編寫的,但文中所談的技術和方法同樣適用于VC++、Delphi、C++Builder等面向對象的編程語言。

    參考文獻

    [1]張立科.VisualBasic6.0程序設計參考手冊[M].北京:人民郵電出版社,2003年

    [2]美StevenHolzner.VisualBasic技術內幕[M].北京:機械工業出版社,1999年

    主站蜘蛛池模板: 国产成人A区在线观看视频| 黄页网址大全免费观看| 久久天天躁狠狠躁夜夜avapp| 亚洲天堂一区二区三区四区| 丝袜高潮流白浆潮喷在线播放| 亚洲AV成人无码精品电影在线| 好吊妞视频这里有精品| 成A人片亚洲日本久久| 亚洲日韩av无码中文字幕美国| 欧美性开放免费网站| 乱人伦人妻系列| 国产一级老熟女自拍视频| 国产精品福利中文字幕| 无码日韩精品一区二区三区免费| 亚洲一区黄色| 国产专区综合另类日韩一区| 亚洲最大成人av在线| 精品国产成人国产在线视| 国产一区二区三区精品自拍| 国产明星精品无码AV换脸| 亚洲AV无码国产永久播放蜜芽 | 欧美三级不卡在线观线看高清| 日本久久一区二区三区高清| 欧美性群另类交| 精品久久久久国产免费| 国产一区二区三区免费观看| 成年午夜无码av片在线观看| 日韩国产精品一区二区av| 国产精品一二三区蜜臀av| 人妻无码| 猫咪网网站免费观看| 日区中文字幕一区二区| 亚洲国产日韩伦中文字幕| 久久综合噜噜激激的五月天| 亚洲WWW永久成人网站| 国产午夜美女福利短视频| 少妇无套内谢免费视频| 少妇人妻在线视频| 奇米四色7777中文字幕| 亚洲国产日韩在线视频| 国产亚洲一二三区精品|