天天看點

html5文本框怎麼透明度,話說半透明文本框!(不透明度可以任意調節,可以實作全透明)...

該樓層疑似違規已被系統折疊 隐藏此樓檢視此樓

我以前曾經問過大家半透明對話框怎麼做,後來一直沒有找到答案。直到有一天,雲霞散人告訴了我一個api函數。。。

好吧,我承認,我說的這個不是半透明“文本框”,而是半透明“picture框”!想要顯示文字的話,用picture框的print就行。至于滾動條之類的,請有志之士實作吧。而且目前的這個子程式,隻能實作picture框直接貼在form上的半透明。

實作picture的半透明隻需要兩個api函數。

Private Declare Function AlphaBlend Lib "msimg32" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal widthSrc As Long, ByVal heightSrc As Long, ByVal blendFunct As Long) As Boolean

Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

我把我的遊戲中的子程式寫出來:

'設定對話框請大家自行設定picture的背景色或圖檔

Public Sub openTxtTalk()

Dim LrProps As rBlendProps

Dim LnBlendPtr As Long

Me.ScaleMode = 3

With picTalk

.ScaleMode = 3

.Cls

.CurrentX = 10

.CurrentY = 10

End With

LrProps.tBlendAmount = 128'不透明度

CopyMemory LnBlendPtr, LrProps, 4

With Me

AlphaBlend txtTalk.hDC, 0, 0, txtTalk.Width, txtTalk.Height, .hDC, txtTalk.Left, txtTalk.Top, txtTalk.Width, txtTalk.Height, LnBlendPtr

End With

picTalk.Refresh

End Sub

隻要短短的這麼幾行代碼就可以了,雖然很不成熟,但是做成養成遊戲裡的半透明對話框還是夠的。�