偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

VB.NET坐標(biāo)系統(tǒng)相關(guān)概念總結(jié)

開(kāi)發(fā) 后端
很多初學(xué)者可能對(duì)VB.NET坐標(biāo)系統(tǒng)還有些不太了解。其實(shí)這一功能的實(shí)現(xiàn)主要體現(xiàn)在圖像界面的處理方面。我們可以通過(guò)本文進(jìn)行一個(gè)詳盡的了解。

VB.NET是一款比較常用的編程語(yǔ)言。其功能的強(qiáng)大性極大的吸引了開(kāi)發(fā)人員的眼球。其中也有很多特殊的功能值得我們?nèi)ド钊氲难芯?。比如VB.NET坐標(biāo)系統(tǒng)就是其中一個(gè)。下面就為大家詳細(xì)介紹這一相關(guān)概念。#t#

這里我們來(lái)看一下ScaleLeft/Top/Height/Width ScaleX ScaleY TextHeight TextWidth的一些特性與關(guān)連。

所謂的ScaleLeft ScaleTop ScaleTop ScaleWidth指的是Window中的Client Area即可以畫(huà)圖、放元件的區(qū)域,像Title區(qū)就不在Client Area的范圍。如果我們?cè)O(shè)定ScaleMode成不為0的數(shù)值,如設(shè)定ScaleMode = 3 (VBPixels)那麼就代表這區(qū)域的度量是以Pixels為單位,而ScaleTop =ScaleLeft = 0,即原點(diǎn)在左上角。

VB.NET坐標(biāo)系統(tǒng)提供了一個(gè)很好用的座標(biāo)系統(tǒng)轉(zhuǎn)換,即ScaleMode, ScaleLeft ScaleTop ScaleTopScaleWidth.我個(gè)人不喜歡VB內(nèi)定的ScaleMode = VbTwips,我愛(ài) ScaleMode=VBPixels原因是Window系統(tǒng)的度量單位是使用Pixels而不是Twips.

如果我們想在一個(gè)畫(huà)面上畫(huà)上座標(biāo),那麼如何才能不管Window的大小,而只管我們所關(guān)注的座標(biāo)呢?假設(shè)我們想做一個(gè)座標(biāo),原點(diǎn)在Form的左下角(0,0)而右上角座標(biāo)是(100,100), 那我們只要對(duì)Form如此設(shè)制

 

  1. ScaleTop = 100 
  2. ScaleWidth = 100 
  3. ScaleLeft = 0 
  4. ScaleHeight = -100

 

那就成了,這時(shí)候,如果我們?nèi)ゲ橐幌耉B.NET坐標(biāo)系統(tǒng)中Form的MouseDown的X, Y值,會(huì)發(fā)現(xiàn)它的值已變成落在0-100之間了。(此時(shí)的ScaleMode = 自動(dòng)變Vbuser)更有趣的是用來(lái)計(jì)算字串高、寬的TextHeight/TextWidth也變成以座標(biāo)0-100的方式來(lái)表現(xiàn)了。

例如說(shuō),

。CurrentX = 10

。CurrentY = 10

Form1.Print "HaHa"

這時(shí)會(huì)見(jiàn)到於Form左下方會(huì)出現(xiàn)HaHa,它的位置便是於座標(biāo)(10,10)之處,所以了,如果Form變大,F(xiàn)orm1.Print "HaHa"所顯示之位置也會(huì)自動(dòng)更動(dòng)不像其他的ScaleMode(如vbPixel),會(huì)在固定的絕對(duì)單位處顯示"HaHa".然而,有時(shí)候我們會(huì)想要以絕對(duì)單位來(lái)做一些事,例如:我們希望在左邊算來(lái)第三個(gè)Pixels處來(lái)顯示東西,的確,數(shù)學(xué)好的人可以自己轉(zhuǎn)換,而像我數(shù)學(xué)不好的人,可以用ScaleX/ScaleY來(lái)做,像方才的例子,左邊算來(lái)第三點(diǎn)(Pixels)相對(duì)應(yīng)於新的座標(biāo)的寬度便是Form1.ScaleX(3,vbPixels, vbUser)。

再來(lái)一個(gè)有趣的問(wèn)題,如果有人見(jiàn)過(guò)一篇文章,用API來(lái)任意角度旋轉(zhuǎn)字型,那篇文章中字型旋轉(zhuǎn)之後印在Form上,如果我們轉(zhuǎn)90度,而且於(50,50)處印字,會(huì)發(fā)現(xiàn)它是從(50,50)處往螢?zāi)簧戏綄?xiě)出字,如果我們想在座標(biāo)(50,50)處當(dāng)作字串的結(jié)束之地,那該如何呢,我會(huì)計(jì)算出該字串的長(zhǎng)度(例如:長(zhǎng)度20),而後在(50,70)處印字,那困難點(diǎn)變成如何得知該字串長(zhǎng)度,第一個(gè)反應(yīng)是。

TextWidth,不過(guò)別忘了,TextWidth它隨著ScaleMode的更動(dòng)而變,寬度x1者,如果垂直P(pán)rint,而便假設(shè)其高度也是x1是不對(duì)的(如:ScaleTop = 0, ScaleHeight = 10, ScaleLeft = 0, ScaleWidth=20,而寬度=10的字串,垂直印的高度應(yīng)是不會(huì)是10,若X Y軸單位不同時(shí)也不一定是5(如果字大小不變的話)。

那使用Pixels來(lái)做二者的轉(zhuǎn)換,Pixels一個(gè)點(diǎn)便是一個(gè)點(diǎn),所以X,Y軸的單位是相同的,當(dāng)然,使用Twips也可以,只是如果中間有用上API,人家大多以Pixels為單位。

 

  1. With Form1  
  2. OldScaleLeft = .ScaleLeft  
  3. OldScaleTop = .ScaleTop  
  4. OldScaleWidth = .ScaleWidth  
  5. OldScaleHeight = .ScaleHeight  
  6. OldScaleMode = .ScaleMode  
  7. 。ScaleMode = vbPixels 
  8. txtLen = .TextWidth(mystring) 
    'myString是待旋轉(zhuǎn)的字串  
  9. if OldScaleMode <> vbUser then  
  10. 。ScaleMode = oldScaleMode 
  11. else  
  12. 。ScaleLeft = OldScaleLeft 
  13. ScaleTop = OldScaleTop 
  14. 。ScaleWidth = OldScaleWidth 
  15. 。ScaleHeight = OldScaleHeight 
  16. End If  
  17. txtHeight = .ScaleY
    (txtLen,vbPixels, vbUser)  
  18. End With 

 

如此txtHeight便是字串於旋轉(zhuǎn)後的高度啦!以上就是我們對(duì)VB.NET坐標(biāo)系統(tǒng)的詳細(xì)介紹。

責(zé)任編輯:曹凱 來(lái)源: 中國(guó)IT實(shí)驗(yàn)室
相關(guān)推薦

2010-01-07 14:10:41

VB.NET數(shù)據(jù)類(lèi)型

2010-01-19 15:08:18

VB.NET對(duì)象成員

2010-01-15 13:52:42

VB.NET屬性設(shè)置

2010-01-07 11:28:44

VB.NET Hash

2010-01-11 18:46:15

VB.NET修飾符

2010-01-12 16:44:53

VB.NET數(shù)組

2010-01-20 18:51:16

VB.NET修改系統(tǒng)時(shí)

2010-01-21 10:48:18

VB.NET擴(kuò)展方法

2010-01-19 10:12:39

VB.NET Butt

2010-01-12 17:54:42

VB.NET Dlli

2010-01-13 10:15:19

VB.NET Stri

2010-01-08 14:56:18

VB.NET類(lèi)定義

2010-01-12 18:05:38

VB.NET對(duì)象

2010-01-12 16:39:26

VB.NET數(shù)據(jù)綁定

2009-10-28 09:21:19

VB.NET技術(shù)

2009-11-03 10:51:33

VB.NET共享

2010-01-14 14:21:07

2010-01-12 17:21:29

VB.NET對(duì)象

2009-11-02 13:14:18

VB.NET函數(shù)

2010-01-20 17:54:13

VB.NET特殊字符
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)