一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - VB - VB的TextBox文本框?qū)崿F(xiàn)垂直居中顯示的方法

VB的TextBox文本框?qū)崿F(xiàn)垂直居中顯示的方法

2021-10-11 15:38VB教程網(wǎng) VB

這篇文章主要介紹了VB的TextBox文本框?qū)崿F(xiàn)垂直居中顯示的方法,比較實(shí)用的功能,需要的朋友可以參考下

本文實(shí)例代碼可以實(shí)現(xiàn)讓VB的TextBox文本框垂直居中顯示效果。此處需要注意:Form_Load()窗體代碼中的多行屬性設(shè)置必須為真,即Text1.MultiLine = True,該屬性為只讀屬性,請(qǐng)?jiān)谠O(shè)計(jì)時(shí)修改,換行會(huì)被之后的代碼屏蔽,不想屏蔽可自行修改,調(diào)用此函數(shù)就好了。

具體的功能代碼如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
'================================================================================
'| 模 塊 名 | TextBoxMiddle
'| 說(shuō)  明 | 文本框居中顯示
'=================================================================================
Option Explicit
Private Type RECT
  Left  As Long
  Top  As Long
  Right  As Long
  Bottom  As Long
End Type
Private Declare Function SendMessage Lib "user32 " Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const EM_GETRECT = &HB2
Private Const EM_SETRECTNP = &HB4
Private Const GWL_WNDPROC = (-4)
Private Const WM_CHAR = &H102
Private Const WM_PASTE As Long = &H302
Private prevWndProc   As Long
Public ClipText As String
Public Sub DisableAbility(TargetTextBox As TextBox)
  prevWndProc = GetWindowLong(TargetTextBox.hwnd, GWL_WNDPROC)
  SetWindowLong TargetTextBox.hwnd, GWL_WNDPROC, AddressOf WndProc
End Sub
 
Private Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  Dim Temp As String
  Select Case Msg
  Case WM_CHAR
    If wParam <> 13 Then WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
  Case WM_PASTE
    ClipText = Clipboard.GetText
    Temp = Replace(ClipText, Chr(10), "")
    Temp = Replace(Temp, Chr(13), "")
    Clipboard.Clear
    Clipboard.SetText Temp
    WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
    Clipboard.Clear
    Clipboard.SetText ClipText
  Case Else
    WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
  End Select
End Function
Sub VerMiddleText(mForm As form, mText As TextBox)
  If mText.MultiLine = False Then Exit Sub
  Dim rc   As RECT, tmpTop    As Long, tmpBot    As Long
  SendMessage mText.hwnd, EM_GETRECT, 0, rc
  With mForm.Font
    .Name = mText.Font.Name
    .Size = mText.Font.Size
    .Bold = mText.Font.Bold
  End With
  tmpTop = ((rc.Bottom - rc.Top) - _
  (mText.Parent.TextHeight("H ") \ Screen.TwipsPerPixelY)) \ 2 + 2
  tmpBot = ((rc.Bottom - rc.Top) + _
  (mText.Parent.TextHeight("H ") \ Screen.TwipsPerPixelY)) \ 2 + 2
  rc.Top = tmpTop
  rc.Bottom = tmpBot
  mText.Alignment = vbCenter
  SendMessage mText.hwnd, EM_SETRECTNP, 0&, rc
  mText.Refresh
  DisableAbility mText
End Sub
'///////////////////////////////////////////////////////
'以下為窗體代碼
'///////////////////////////////////////////////////////
Private Sub Form_Load()
  '================注意!!!=================
  '多行屬性必須為真,暨Text1.MultiLine = True
  '該屬性為只讀屬性,請(qǐng)?jiān)谠O(shè)計(jì)時(shí)修改
  '換行會(huì)被之后的代碼屏蔽,不想屏蔽可自行修改
  '===========================================
  '調(diào)用此函數(shù)就好了
  VerMiddleText Me, Text1
  Caption = Len(Text1)
End Sub

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 视频一区二区三区欧美日韩 | 女人把私密部位张开让男人桶 | 色老板免费在线观看 | 亚洲精品一区二区久久这里 | 催眠白丝舞蹈老师小说 | 特黄特色大片免费视频大全 | 调教扩张宫颈女人惨叫 | 亚洲高清毛片一区二区 | 亚洲精品一区波多野结衣 | 久久婷婷五月免费综合色啪 | 日产精品一二三四区国产 | 垫底辣妹免费观看完整版 | 俄罗斯美女毛茸茸bbwbbw | 男人狂躁女人gif动态图 | 欧美一级片在线视频 | 天天天天天干 | 狠狠色成人综合网图片区 | 欧美日韩亚洲成人 | 国产91在线精品 | 欧美人禽杂交狂配无删完整 | 青草青青在线视频 | 俄罗斯伦理片 | 亚洲女同一区二区 | 国产视频久久 | 1024香蕉视频| 欧美一卡二卡科技有限公司 | 啊哈~嗯哼~用力cao我小说 | 久久se精品一区二区国产 | 十大免费批日的软件 | anal22日本人视频| japanesemoms乱熟 | 妹妹骑上来蹭着蹭着就射了 | 欧美成人一区二区三区 | 无限资源在线观看8 | 国产悠悠视频在线播放 | 午夜精品久视频在线观看 | 天天爽天天干天天操 | 亚洲国产精品自在现线让你爽 | 日本中文字幕在线视频站 | 日本在线不卡免 | 精品久久久麻豆国产精品 |