欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
如何理解VB窗體中的scale類(lèi)屬性,及width height屬性之間的關(guān)系

如何理解VB窗體中的scale類(lèi)屬性
及width height屬性之間的關(guān)系

         VB中的SCALEHIEGT,SCALEWIDTH,與窗體中的WIDTH,HEIGHT的區別及關(guān)系是許多VB初學(xué)者難以理解的。本人在學(xué)習DELPHI的過(guò)程中也曾經(jīng)對這類(lèi)似的概論搞不清楚,但通過(guò)這次對VB中這些類(lèi)似概念的學(xué)習后,可以說(shuō)是已掌握了這種概念及原理了?,F在回頭看DELPHI的相關(guān)知識點(diǎn)有豁然開(kāi)朗的感覺(jué),VB的確是可視化編程入門(mén)的最佳語(yǔ)言。


問(wèn)題的提出
  在VB中默認的度量單位是緹,這是一種跟屏幕分辨率無(wú)關(guān)的一種度量單位,主要是用在打印機上的,大概是1緹=1/20磅。其它的一些單位請查看MSDN。使用緹就會(huì )給我們帶來(lái)一些麻煩,因為我們都習慣于使用像素來(lái)度量窗體及控件的大小,并使用顯示器當前的分辨率作參考物來(lái)確定窗體的適當大小,當我們想動(dòng)態(tài)地改變窗體的大小的時(shí)候我們該如何確定正確的數值呢,想動(dòng)態(tài)地移動(dòng)窗體中的控件,該如何確定控件的位置呢?同時(shí),在VB的窗體中同時(shí)存在著(zhù)這樣的一些屬性:scaleWidth,scaleHeight,scaleLeft,scaleTop,scaleMode,Width,Height,他們之間是怎樣的關(guān)系,是如何影響窗體中控件的大小的呢?通過(guò)下面的解說(shuō),我們就能解決上面所提到的問(wèn)題。


預備知識
         其實(shí)在VB中的窗體內部(除去窗體邊框及標標題欄的區域)有一個(gè)類(lèi)似于畫(huà)布的東西,它始終是占滿(mǎn)整個(gè)窗體區域的,他有一個(gè)坐標系統,默認的是原點(diǎn)就是窗體的左上角,坐標是0,0 然后往左伸延的就是X軸,往下就是Y軸了,但是這個(gè)坐標的單位默認就是緹,當然我們是可以修改成其它類(lèi)型的單位,要修改度量單位的話(huà)就要設定窗體的scaleMode屬性。如:設為像素scaleMode=3 。這個(gè)坐標系統是用來(lái)確定要在什么位置上通過(guò)PRINT等方法來(lái)作圖的,以及確定在這個(gè)容器中的什么位置上放置控件,以及跟窗體寬和高的比例情況。

scale類(lèi)屬性的作用
         清楚了窗體有這樣一個(gè)畫(huà)布及它的坐標后,我們再來(lái)看看有關(guān)這個(gè)坐標系統的屬性。這些scale類(lèi)型屬性主要是用來(lái)設定畫(huà)布坐標系統的數值跟窗體的高寬數值比例情況的。具體是怎樣的關(guān)系及怎樣影響在下面有論說(shuō)。scaleLeft,scaleTop這兩個(gè)屬性是用來(lái)設定這個(gè)坐標系統的原點(diǎn)位置的,系統默認的scaleLeft,scaleTop是0,也就是說(shuō)原點(diǎn)在窗體的左上角了,坐標系統只有大于0的那一塊坐標,這樣的好處是可以很直觀(guān)地使用這個(gè)坐標系統因為參照點(diǎn)是0且是從窗體的左上角開(kāi)始的。如果把這兩個(gè)值設定為大于0的話(huà),畫(huà)布的坐標就有正負區域了,這樣就更像我們數學(xué)上的坐標系統了。scaleMode用于設定坐標軸的度量單位。

width,Height的作用
         這兩個(gè)屬性是用于設定窗體的寬和高,他們的單位始終是緹,會(huì )直接影響到畫(huà)布的大小及坐標的比例情況,要動(dòng)態(tài)設置窗體的大小也只能通過(guò)這兩個(gè)屬性來(lái)設定。

這些屬性的關(guān)系
         默認情況下,窗體的寬和高是跟窗體上的畫(huà)布的寬和高是一樣大小的,且畫(huà)布的坐標原點(diǎn)就是窗體的左上角。也就是說(shuō),畫(huà)布的寬和窗體的寬是1:1的關(guān)系,也就是說(shuō)畫(huà)布的1緹寬度相當于窗體的1緹寬度。那么當我們在窗體上用print.circle (500,500),200來(lái)畫(huà)一個(gè)圓的時(shí)候,原點(diǎn)就是在距窗體頂部500個(gè)緹,左邊500個(gè)緹,半徑是200個(gè)緹?,F在我們嘗試把窗體上的scaleHeight,scaleWidth修改為原來(lái)的1/2,現在也是用同樣的方法來(lái)畫(huà)一個(gè)圓,對比這一下現在的圓跟修改前的圓,可以發(fā)現當前圓的半徑比原來(lái)的擴大了一倍,而且圓心的位置也改變了。同樣的參數為什么會(huì )有不一要結果呢?這就是scaleHeigh scaleWidth起的作用,假如窗體原本的width是1000緹,scaleWidth也是1000緹,也就是說(shuō)他們是1:1的關(guān)系,我們用 print.circle (500,500),200在畫(huà)布上畫(huà)出來(lái)的圓所用的尺寸單位是1:1的,明確一點(diǎn)說(shuō)就是在畫(huà)布寬上所畫(huà)的一緹就是窗體寬度的一緹,但修改了scaleWidth后,比如說(shuō)是原來(lái)值的一半,情況就不一樣了,畫(huà)布跟窗體的比例就變成是1:2了,在畫(huà)布看來(lái),要用原來(lái)數值的一半來(lái)表示窗體的寬,那么只能是1個(gè)緹來(lái)表示窗體width的兩個(gè)緹了,這樣的話(huà)如果還是用原來(lái)參數來(lái)使用print方法來(lái)作圓的話(huà),出來(lái)的圓就是原來(lái)的兩倍了。情況就有點(diǎn)像要在一張白張上把整個(gè)中國地圖畫(huà)出來(lái)一樣,張上的一毫米就相當于實(shí)際十萬(wàn)八千公里了。這就是scale屬性跟窗體width,height之間或關(guān)系了。

緹跟像素的關(guān)系
我們可以通過(guò)VB的系統對像screen的twipPerPixersX及twipPerPixersX屬性來(lái)返回當前分辨率下每一像素所占緹,默認情況下應該是15。但這個(gè)值是不是固定的呢?答案是不的,屏幕也是一個(gè)畫(huà)布,同時(shí)也像窗體一樣有高和寬,要返回15的前提條件是scaleWidth跟width是1:1,scaleHeight跟height也是1:1。

總結
         窗體上有一個(gè)畫(huà)布,它的坐標系統默認是跟窗體一樣的,但可以通過(guò)scale類(lèi)屬性可以去修改。通過(guò)這些scale類(lèi)屬性我們可以開(kāi)發(fā)出一種具有圖形放大縮小功能的程序,只要把作圖的方法中參數保持不變,動(dòng)態(tài)改變scale屬性就可以達到目的,這種關(guān)系是成反比的,也就是說(shuō)參數不變,scale減小的話(huà)圖形就放大。這類(lèi)程序的例子就像是股票分析軟件中的成交量圖。

         另:DELPHI也有類(lèi)似的畫(huà)布機制。原理是基本上一致的。

ps:在vb中感覺(jué)真不習慣.

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
vb窗體left、top、width、height,scaleleft、scaletop、scalewidth、scaleheith區別。
Visual Basic自適應窗體設計經(jīng)驗
(轉)VB實(shí)現控件與窗體能不能同步縮放呢?
關(guān)于Width、ScaleWidth和Height、ScaleHeight
VB中建立用戶(hù)自定義圖形坐標系統的方法
VB中對象隨窗體而改變大小的方法總結
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久