最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2014年07月31日 14:49:37   投稿:shichen2014  
這篇文章主要介紹了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ù)就好了。

具體的功能代碼如下:

'================================================================================
'| 模 塊 名 | TextBoxMiddle
'| 說  明 | 文本框居中顯示
'=================================================================================
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

相關(guān)文章

最新評(píng)論

嘉义县| 永兴县| 石城县| 黄平县| 朝阳区| 武强县| 平武县| 霍邱县| 石景山区| 大同县| 古蔺县| 孟连| 裕民县| 仁怀市| 通辽市| 广东省| 和平县| 吉木萨尔县| 永修县| 五华县| 江安县| 新营市| 玛多县| 梅州市| 凯里市| 昭平县| 龙泉市| 德清县| 景宁| 临沧市| 文登市| 合山市| 邓州市| 广水市| 家居| 武宣县| 南靖县| 溧水县| 合山市| 积石山| 兴化市|