• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    旋轉的文本

    發布: 2007-5-25 09:19 | 作者: jmylf | 來源: 互聯網 | 查看: 28次 | 進入軟件測試論壇討論

    領測軟件測試網 <!--StartFragment-->在VB中利用Windows的API函數可以實現很多的VB無法實現的擴展功能,下面的程序介紹的是如何通過調用Windows中的API函數實現文本旋轉顯示的特級效果。
      首先建立一個工程文件,然后選菜單中的Project | Add Class Module 加入一個新的類文件,并將這個類的Name屬性改變為APIFont,然后在類的代碼窗口中加入以下的代碼:
      Option Explicit
      
      Private Declare Function SelectClipRgn Lib “gdi32”(ByVal hdc As Long, ByVal hRgn As _
      Long) As Long
      Private Declare Function CreateRectRgn Lib “gdi32”(ByVal X1 As Long, ByVal Y1 As _
      Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
      Private Declare Function SetTextColor Lib “gdi32”(ByVal hdc As Long, ByVal crColor As _
      Long) As Long
      Private Declare Function DeleteObject Lib “gdi32”(ByVal hObject As Long) As Long
      Private Declare Function CreateFontIndirect Lib “gdi32” Alias “CreateFontIndirectA” _
      (lpLogFont As LOGFONT) As Long
      Private Declare Function SelectObject Lib “gdi32”(ByVal hdc As Long, ByVal hObject As _
      Long) As Long
      Private Declare Function TextOut Lib “gdi32” Alias “TextOutA” (ByVal hdc As Long, _
      ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As _
      Long) As Long
      Private Declare Function SetTextAlign Lib “gdi32”(ByVal hdc As Long, ByVal wFlags _
      As Long) As Long
      
      Private Type RECT
       Left As Long
       Top As Long
       Right As Long
       Bottom As Long
      End Type
      
      Private Const TA_LEFT = 0
      Private Const TA_RIGHT = 2
      Private Const TA_CENTER = 6
      Private Const TA_TOP = 0
      Private Const TA_BOTTOM = 8
      Private Const TA_BASELINE = 24
      
      Private Type LOGFONT
       lfHeight As Long
       lfWidth As Long
       lfEscapement As Long
       lfOrientation As Long
       lfWeight As Long
       lfItalic As Byte
       lfUnderline As Byte
       lfStrikeOut As Byte
       lfCharSet As Byte
       lfOutPrecision As Byte
       lfClipPrecision As Byte
       lfQuality As Byte
       lfPitchAndFamily As Byte
       lfFaceName As String * 50
      End Type
      
      Private m_LF As LOGFONT
      Private NewFont As Long
      Private OrgFont As Long
      Public Sub CharPlace(o As Object, txt$, X, Y)
       Dim Throw As Long
       Dim hregion As Long
       Dim R As RECT
      
       R.Left = X
       R.Right = X + o.TextWidth(txt$) * 2
       R.Top = Y
       R.Bottom = Y + o.TextHeight(txt$) * 2
      
       hregion = CreateRectRgn(R.Left, R.Top, R.Right, R.Bottom)
       Throw = SelectClipRgn(o.hdc, hregion)
       Throw = TextOut(o.hdc, X, Y, txt$, Len(txt$))
       DeleteObject (hregion)
      End Sub
      Public Sub SetAlign(o As Object, Top, BaseLine, Bottom, Left, Center, Right)
       Dim Vert As Long
       Dim Horz As Long
      
       If Top = True Then Vert = TA_TOP
       If BaseLine = True Then Vert = TA_BASELINE
       If Bottom = True Then Vert = TA_BOTTOM
       If Left = True Then Horz = TA_LEFT
       If Center = True Then Horz = TA_CENTER
       If Right = True Then Horz = TA_RIGHT
       SetTextAlign o.hdc, Vert Or Horz
      End Sub
      Public Sub setcolor(o As Object, CValue As Long)
       Dim Throw As Long
      
       Throw = SetTextColor(o.hdc, CValue)
      End Sub
      Public Sub SelectOrg(o As Object)
       Dim Throw As Long
      
       NewFont = SelectObject(o.hdc, OrgFont)
       Throw = DeleteObject(NewFont)
      End Sub
      Public Sub SelectFont(o As Object)
       NewFont = CreateFontIndirect(m_LF)
       OrgFont = SelectObject(o.hdc, NewFont)
      End Sub
      Public Sub FontOut(text$, o As Control, XX, YY)
       Dim Throw As Long
      
       Throw = TextOut(o.hdc, XX, YY, text$, Len(text$))
      End Sub
      
      Public Property Get Width() As Long
       Width = m_LF.lfWidth
      End Property
      
      Public Property Let Width(ByVal W As Long)
       m_LF.lfWidth = W
      End Property
      
      Public Property Get Height() As Long
       Height = m_LF.lfHeight
      End Property
      
      Public Property Let Height(ByVal vNewValue As Long)
       m_LF.lfHeight = vNewValue
      End Property
      
      Public Property Get Escapement() As Long
       Escapement = m_LF.lfEscapement
      End Property
      
      Public Property Let Escapement(ByVal vNewValue As Long)
       m_LF.lfEscapement = vNewValue
      End Property
      
      Public Property Get Weight() As Long
       Weight = m_LF.lfWeight
      End Property
      
      Public Property Let Weight(ByVal vNewValue As Long)
       m_LF.lfWeight = vNewValue
      End Property
      
      Public Property Get Italic() As Byte
       Italic = m_LF.lfItalic
      End Property
      
      Public Property Let Italic(ByVal vNewValue As Byte)
       m_LF.lfItalic = vNewValue
      End Property
      
      Public Property Get UnderLine() As Byte
       UnderLine = m_LF.lfUnderline
      End Property
      
      Public Property Let UnderLine(ByVal vNewValue As Byte)
       m_LF.lfUnderline = vNewValue
      End Property
      
      Public Property Get StrikeOut() As Byte
       StrikeOut = m_LF.lfStrikeOut
      End Property
      
      Public Property Let StrikeOut(ByVal vNewValue As Byte)
       m_LF.lfStrikeOut = vNewValue
      End Property
      
      Public Property Get FaceName() As String
       FaceName = m_LF.lfFaceName
      End Property
      
      Public Property Let FaceName(ByVal vNewValue As String)
       m_LF.lfFaceName = vNewValue
      End Property
      
      Private Sub Class_Initialize()
       m_LF.lfHeight = 30
       m_LF.lfWidth = 10
       m_LF.lfEscapement = 0
       m_LF.lfWeight = 400
       m_LF.lfItalic = 0
       m_LF.lfUnderline = 0
       m_LF.lfStrikeOut = 0
       m_LF.lfOutPrecision = 0
       m_LF.lfClipPrecision = 0
       m_LF.lfQuality = 0
       m_LF.lfPitchAndFamily = 0
       m_LF.lfCharSet = 0
       m_LF.lfFaceName = "Arial" + Chr(0)
      End Sub
      在工程文件的Form1中加入一個PictureBox和一個CommandButton控件,然后在Form1的代碼窗口中加入以下的代碼:
      Option Explicit
      
      Dim AF As APIFont
      Dim X, Y As Integer
      
      Private Sub Command1_Click()
       Dim i As Integer
      
       Set AF = Nothing
       Set AF = New APIFont
       Picture2.Cls
       For i = 0 To 3600 Step 360
       AF.Escapement = i
       AF.SelectFont Picture2
       X = Picture2.ScaleWidth / 2
       Y = Picture2.ScaleHeight / 2
       '在字符串后面要加入7個空格
       AF.FontOut “電腦商情報第42期 ”, Picture2, X, Y
       AF.SelectOrg Picture2
       Next i
      End Sub
      
      Private Sub Form_Load()
       Picture2.ScaleMode = 3
      End Sub
      

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>