⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mytitlebar.ctl

📁 详细说明:手写识别源码
💻 CTL
字号:
VERSION 5.00
Begin VB.UserControl MicTitleBar 
   ClientHeight    =   1305
   ClientLeft      =   0
   ClientTop       =   0
   ClientWidth     =   5580
   ScaleHeight     =   87
   ScaleMode       =   3  'Pixel
   ScaleWidth      =   372
   Begin VB.PictureBox PicUn 
      AutoRedraw      =   -1  'True
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   240
      Left            =   4320
      Picture         =   "MyTitleBar.ctx":0000
      ScaleHeight     =   16
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   15
      TabIndex        =   9
      Top             =   840
      Width           =   225
   End
   Begin VB.PictureBox ImageL 
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   360
      Left            =   0
      Picture         =   "MyTitleBar.ctx":0342
      ScaleHeight     =   360
      ScaleWidth      =   105
      TabIndex        =   7
      Top             =   0
      Width           =   105
   End
   Begin VB.PictureBox Picture000 
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   750
      Left            =   1200
      Picture         =   "MyTitleBar.ctx":05C4
      ScaleHeight     =   750
      ScaleWidth      =   720
      TabIndex        =   6
      Top             =   480
      Width           =   720
   End
   Begin VB.PictureBox PicMaxU 
      AutoRedraw      =   -1  'True
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   240
      Left            =   4800
      Picture         =   "MyTitleBar.ctx":2226
      ScaleHeight     =   16
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   15
      TabIndex        =   5
      ToolTipText     =   "最大化"
      Top             =   60
      Width           =   225
   End
   Begin VB.PictureBox PicMin 
      AutoRedraw      =   -1  'True
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   240
      Left            =   4455
      Picture         =   "MyTitleBar.ctx":2568
      ScaleHeight     =   16
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   15
      TabIndex        =   4
      Top             =   480
      Width           =   225
   End
   Begin VB.PictureBox PicMax 
      AutoRedraw      =   -1  'True
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   240
      Left            =   4800
      Picture         =   "MyTitleBar.ctx":28AA
      ScaleHeight     =   16
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   15
      TabIndex        =   3
      Top             =   480
      Width           =   225
   End
   Begin VB.PictureBox PicClose 
      AutoRedraw      =   -1  'True
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   240
      Left            =   5160
      Picture         =   "MyTitleBar.ctx":2BEC
      ScaleHeight     =   16
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   15
      TabIndex        =   2
      Top             =   480
      Width           =   225
   End
   Begin VB.PictureBox PicCloseU 
      AutoRedraw      =   -1  'True
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   240
      Left            =   5160
      Picture         =   "MyTitleBar.ctx":2F2E
      ScaleHeight     =   16
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   15
      TabIndex        =   1
      ToolTipText     =   "关闭"
      Top             =   60
      Width           =   225
   End
   Begin VB.PictureBox PicMinU 
      AutoRedraw      =   -1  'True
      AutoSize        =   -1  'True
      BorderStyle     =   0  'None
      Height          =   240
      Left            =   4440
      Picture         =   "MyTitleBar.ctx":3270
      ScaleHeight     =   16
      ScaleMode       =   3  'Pixel
      ScaleWidth      =   15
      TabIndex        =   0
      ToolTipText     =   "最小化"
      Top             =   60
      Width           =   225
   End
   Begin VB.Image ImageIco 
      Height          =   240
      Left            =   120
      Stretch         =   -1  'True
      Top             =   50
      Width           =   255
   End
   Begin VB.Label LabelC 
      AutoSize        =   -1  'True
      BackStyle       =   0  'Transparent
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   10.5
         Charset         =   134
         Weight          =   400
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H00000000&
      Height          =   210
      Left            =   480
      TabIndex        =   8
      Top             =   60
      Width           =   105
   End
   Begin VB.Image ImageM 
      Height          =   360
      Left            =   105
      Picture         =   "MyTitleBar.ctx":35B2
      Stretch         =   -1  'True
      Top             =   0
      Width           =   615
   End
   Begin VB.Image ImageR 
      Height          =   360
      Left            =   1440
      Picture         =   "MyTitleBar.ctx":36B4
      Top             =   0
      Width           =   105
   End
End
Attribute VB_Name = "MicTitleBar"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'****************************************************************************
'人人为我,我为人人
'枕善居收藏整理
'发布日期:2008/01/21
'描    述:OCR手写字体识别软件
'网    站:http://www.Mndsoft.com/  (VB6源码博客)
'网    站:http://www.VbDnet.com/   (VB.NET源码博客,主要基于.NET2005)
'e-mail  :Mndsoft@163.com
'e-mail  :Mndsoft@126.com
'OICQ    :88382850
'          如果您有新的好的代码别忘记给枕善居哦!
'****************************************************************************

Private Declare Function BitBlt Lib "gdi32" (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 dwRop As Long) As Long

Private Declare Function ReleaseCapture Lib "user32" () As Long
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 Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2

Private Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) 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 CombineRgn Lib "gdi32" (ByVal hDestRgn As Long, ByVal hSrcRgn1 As Long, ByVal hSrcRgn2 As Long, ByVal nCombineMode As Long) As Long
Private Declare Function ScreenToClient Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As POINTAPI, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long

Const RGN_OR = 2

Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

Private Type POINTAPI
        x As Long
        y As Long
End Type

Private Sub ImageL_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = 1 Then
    Call ReleaseCapture
    Call SendMessage(UserControl.Parent.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
    End If
End Sub

Private Sub ImageM_DblClick()

If PicMaxU.Enabled = True Then
    Call PicMaxU_Click
End If

End Sub

Private Sub ImageM_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = 1 Then
    Call ReleaseCapture
    Call SendMessage(UserControl.Parent.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
    End If
End Sub

Private Sub ImageR_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = 1 Then
    Call ReleaseCapture
    Call SendMessage(UserControl.Parent.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
    End If
End Sub

Private Sub LabelC_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = 1 Then
    Call ReleaseCapture
    Call SendMessage(UserControl.Parent.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
    End If
End Sub

Private Sub PicCloseU_Click()
Unload UserControl.Parent
End Sub

Private Sub PicCloseU_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    With PicCloseU
        If Button = 0 Then
            If (x < 0) Or (y < 0) Or (x > .Width) Or (y > .Height) Then
                ReleaseCapture ' 鼠标离开
                .Cls
            Else
                SetCapture .hwnd '鼠标进入
                BitBlt .hdc, 0, 0, 15, 16, PicClose.hdc, 0, 0, vbSrcCopy
                .Refresh
            End If
        End If
    End With
End Sub

Private Sub PicMaxU_Click()
If UserControl.Parent.WindowState = 2 Then
    UserControl.Parent.WindowState = 0
Else
    UserControl.Parent.WindowState = 2
End If
PicMaxU.Cls
End Sub

Private Sub PicMaxU_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    With PicMaxU
        If Button = 0 Then
            If (x < 0) Or (y < 0) Or (x > .Width) Or (y > .Height) Then
                ReleaseCapture ' 鼠标离开
                .Cls
            Else
                SetCapture .hwnd '鼠标进入
                
                BitBlt .hdc, 0, 0, 15, 16, PicMax.hdc, 0, 0, vbSrcCopy
                .Refresh
            End If
        End If
    End With
End Sub

Private Sub PicMinU_Click()
UserControl.Parent.WindowState = 1
PicMinU.Cls
End Sub

Private Sub PicMinU_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    With PicMinU
        If Button = 0 Then
            If (x < 0) Or (y < 0) Or (x > .Width) Or (y > .Height) Then
                ReleaseCapture ' 鼠标离开
                .Cls
            Else
                SetCapture .hwnd '鼠标进入
                BitBlt .hdc, 0, 0, 15, 16, PicMin.hdc, 0, 0, vbSrcCopy
                .Refresh
            End If
        End If
    End With
End Sub

Private Sub UserControl_Resize()
On Error Resume Next
    ImageM.Width = UserControl.ScaleWidth - 14
    ImageR.Left = UserControl.ScaleWidth - 7
    UserControl.Height = 360
    UserControl.Width = UserControl.Parent.Width
    PicCloseU.Left = UserControl.ScaleWidth - 20
    PicMaxU.Left = UserControl.ScaleWidth - 43
    PicMinU.Left = UserControl.ScaleWidth - 67
    AllBlt UserControl.Parent, Picture000
    
    Dim Regn As Long
    Dim CER As Long
    'MakeNoBorderForm UserControl.Parent
    X1 = UserControl.Parent.Width / Screen.TwipsPerPixelX
    Y1 = UserControl.Parent.Height / Screen.TwipsPerPixelY
    
    Regn = CreateRectRgn(0, 4, X1, Y1)  '把句柄设为第一个矩形区域
    CER = CreateRectRgn(4, 0, X1 - 4, 10) '创建第二个矩形区域
    CombineRgn Regn, Regn, CER, RGN_OR   '把临时句柄变量或运算到句柄变量中
    CER = CreateRectRgn(2, 1, X1 - 2, 10)
    CombineRgn Regn, Regn, CER, RGN_OR   '把临时句柄变量或运算到句柄变量中
    CER = CreateRectRgn(1, 2, X1 - 1, 10)
    CombineRgn Regn, Regn, CER, RGN_OR   '把临时句柄变量或运算到句柄变量中
    Call SetWindowRgn(UserControl.Parent.hwnd, Regn, True) '创建窗体
    
    UserControl.Parent.Line (0, 21)-(0, UserControl.Parent.ScaleHeight - 1), 8684676
    UserControl.Parent.Line (0, UserControl.Parent.ScaleHeight - 1)-(UserControl.Parent.ScaleWidth - 1, UserControl.Parent.ScaleHeight - 1), 8684676
    UserControl.Parent.Line (UserControl.Parent.ScaleWidth - 1, 21)-(UserControl.Parent.ScaleWidth - 1, UserControl.Parent.ScaleHeight), 8684676

End Sub

Private Function AllBlt(frm As Object, Pic As Object)
Dim i As Long, j As Long
  frm.ScaleMode = 3
  frm.AutoRedraw = True
  Pic.AutoRedraw = True
  Pic.ScaleMode = 3
  Pic.AutoSize = True
  For i = 0 To frm.ScaleWidth Step Pic.ScaleWidth
    For j = 0 To frm.ScaleHeight Step Pic.ScaleHeight
      BitBlt frm.hdc, i, j, Pic.ScaleWidth, Pic.ScaleHeight, Pic.hdc, 0, 0, vbSrcCopy
    Next j
  Next i
  frm.Refresh
End Function

Private Sub MakeNoBorderForm(frm As Form)
'切除窗口的边框
Dim rctClient As RECT, rctFrame As RECT
Dim hRgn As Long
Dim lRes As Long
ReDim XY(3) As POINTAPI
Dim lpTL As POINTAPI, lpBR As POINTAPI
    
    '获得窗口矩形区域
    '将窗口矩形坐标转换为屏幕坐标
    lpTL.x = frm.Left / 15
    lpTL.y = frm.Top / 15
    ScreenToClient frm.hwnd, lpTL
    rctClient.Left = Abs(lpTL.x)
    rctClient.Top = Abs(lpTL.y)
    
    frm.ScaleMode = 1                                       'Twip
    
    rctClient.Right = frm.ScaleWidth / 15 + Abs(lpTL.x)
    rctClient.Bottom = frm.ScaleHeight / 15 + Abs(lpTL.y)
    
    '建立要切割的数组
    XY(0).x = rctClient.Left
    XY(0).y = rctClient.Top
    XY(1).x = rctClient.Right
    XY(1).y = rctClient.Top
    XY(2).x = rctClient.Right
    XY(2).y = rctClient.Bottom
    XY(3).x = rctClient.Left
    XY(3).y = rctClient.Bottom
     
    hRgn = CreatePolygonRgn(XY(0), 4, 2)
    lRes = SetWindowRgn(frm.hwnd, hRgn, True)
    
    frm.ScaleMode = 3
End Sub

Private Sub UserControl_Show()
If UserControl.Parent.MinButton = False Then
    BitBlt PicMinU.hdc, 0, 0, 15, 16, PicUn.hdc, 0, 0, vbSrcCopy
    PicMinU.Refresh
    PicMinU.Enabled = False
End If
    
If UserControl.Parent.MaxButton = False Then
    BitBlt PicMaxU.hdc, 0, 0, 15, 16, PicUn.hdc, 0, 0, vbSrcCopy
    PicMaxU.Refresh
    PicMaxU.Enabled = False
End If
LabelC.Caption = UserControl.Parent.Caption
ImageIco.Picture = UserControl.Parent.Icon

End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -