1,451
社区成员
发帖
与我相关
我的任务
分享
'没有看demo,随便写写,分享下..
'写个汉化工具,试着用了下老马推荐的控件(Codejock Software),感觉效果不错
'SkinFramework,运行时VB IDE部分区域有变色现象,窗体加载前后需要载入窗体和释放窗体
With sfk
.LoadSkin "Office2007.cjstyles", ""
.ApplyWindow Me.hWnd
.ApplyOptions = xtpSkinApplyColors
End With
With Me.sfk
.RemoveWindow Me.hWnd
End With
'主题在MDI窗体上,.ApplyOptions =xtpSkinApplyFrame 似乎覆盖菜单,没有仔细查看,待定
'FlatEdit和Label使用时,不小心溢出了(懒惰的复制粘贴害的 嘿嘿),结果界面上的Label,FlatEdit全部消失了..
'明天继续...
Private Declare Function InitCommonControls Lib "Comctl32.dll" () As Long
'主窗体加载时,运行的初始化控件,可能是该控件集合使用了该文件.
Private Sub MDIForm_Initialize()
Call InitCommonControls
End Sub
'窗体加载代码
Private Sub MDIForm_Load()
With Me
.WindowState = 2
End With
Call Init_Ctrl
End Sub
'初始化控件
Private Sub Init_Ctrl()
On Error GoTo err
Debug.Assert (Init_Commandbar = True)
Debug.Assert (Init_SFK = True)
Exit Sub
err:
MsgBox err.Description, vbInformation, MSG_TITLE
End Sub
'加载皮肤
Private Function Init_SFK() As Boolean
On Error GoTo err
Init_SFK = False
With sfk
.LoadSkin App.Path & "\skin\WinXP.Royale.cjstyles", ""
.ApplyOptions = xtpSkinApplyFrame Or xtpSkinApplyMetrics
.ApplyWindow Me.hWnd
End With
Init_SFK = True
Exit Function
err:
MsgBox err.Description, vbInformation, MSG_TITLE
End Function
'初始化菜单,由于主题覆盖了MDI窗体的菜单部分,所以需要使用CommandBars生成菜单
Private Function Init_Commandbar() As Boolean
Dim ctrl As CommandBarControl
Dim ctrlFile As CommandBarPopup
Dim ctrlEdit As CommandBarPopup
Dim ctrlView As CommandBarPopup
Dim ctrlWindow As CommandBarPopup
Dim ctrlHelp As CommandBarPopup
Init_Commandbar = False
cmdbr.AttachToWindow (Me.hWnd)
Set ctrlFile = cmdbr.ActiveMenuBar.Controls.Add(xtpControlPopup, 0, "&File", -1, False)
With ctrlFile.CommandBar.Controls
.Add xtpControlButton, ID_FILE_NEW, "&New"
.Add xtpControlButton, ID_FILE_OPEN, "&Open"
.Add xtpControlButton, ID_FILE_CLOSE, "&Close"
.Add xtpControlButton, ID_FILE_SAVE, "&Save"
Set ctrl = .Add(xtpControlButton, ID_FILE_PRINT, "&Print")
ctrl.BeginGroup = True
.Add xtpControlButton, ID_FILE_PRINT_SETUP, "Print Set&up..."
Set ctrl = .Add(xtpControlButton, ID_FILE_EXIT, "&Exit")
ctrl.BeginGroup = True
End With
With cmdbr
.VisualTheme = xtpThemeNativeWinXP
End With
Init_Commandbar = True
Exit Function
err:
MsgBox err.Description, vbInformation, MSG_TITLE
End Function
'菜单消息处理函数,CommandBars的事件
Private Sub cmdbr_Execute(ByVal Control As XtremeCommandBars.ICommandBarControl)
On Error GoTo err
Select Case Control.Id
Case ID_FILE_NEW
Debug.Assert (Show_New_Form = True)
Case ID_FILE_EXIT
Unload Me
Case ID_FILE_OPEN
Case Else
MsgBox "else_click", vbInformation, MSG_TITLE
End Select
Exit Sub
err:
MsgBox err.Description, vbInformation, MSG_TITLE
End Sub
'运行子窗体
Private Function Show_New_Form() As Boolean
On Error GoTo err
Dim newfrm As New frmTemp
Show_New_Form = False
newfrm.Show
Set newfrm = Nothing
Show_New_Form = True
Exit Function
err:
MsgBox err.Description, vbInformation, MSG_TITLE
End Function
'控件示例代码,是在MDIForm_Unload事件中,我写在这里是为了点击MDI的关闭按钮时,在子窗体关闭前提示是否退出,可根据你的需要选择.
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Dim frm As Form
If MsgBox("确定要退出系统吗?", vbYesNo, MSG_TITLE) = vbYes Then
For Each frm In Forms
If Not frm Is Nothing Then
Unload frm
End If
Next
End If
End Sub
Option Explicit
Public Const ID_FILE_NEW = 100
Public Const ID_FILE_OPEN = 101
Public Const ID_FILE_CLOSE = 102
Public Const ID_FILE_SAVE = 103
Public Const ID_FILE_EXIT = 104
Public Const ID_EDIT_UNDO = 105
Public Const ID_EDIT_COPY = 106
Public Const ID_EDIT_PASTE = 107
Public Const ID_EDIT_CUT = 108
Public Const ID_EDIT_PARAM = 256
Public Const ID_VIEW_TOOLBAR_STANDARD = 109
Public Const ID_VIEW_TOOLBAR_THEMES = 115
Public Const ID_VIEW_STATUSBAR = 110
Public Const ID_VIEW_OPTIONS = 111
Public Const ID_HELP_ABOUT = 112
Public Const ID_FILE_PRINT = 113
Public Const ID_FILE_PRINT_SETUP = 114
Public Const ID_FORMAT_BOLD = 120
Public Const ID_FORMAT_ITALIC = 121
Public Const ID_FORMAT_UNDERLINE = 122
Public Const ID_FORMAT_ALIGNLEFT = 123
Public Const ID_FORMAT_CENTER = 124
Public Const ID_FORMAT_ALIGNRIGHT = 125
Public Const ID_THEME_OFFICE = 130
Public Const ID_THEME_DEFAULT = 131
Public Const ID_THEME_OFFICE2003 = 132
Public Const ID_THEME_NATIVEXP = 133
Public Const ID_THEME_SWITCH = 134
Public Const ID_THEME_WHIDBEY = 143
Public Const ID_WINDOW_CASCADE = 140
Public Const ID_WINDOW_TILE_HORIZANTALLY = 141
Public Const ID_WINDOW_TILE_VERTICALLY = 142
Public Const ID_TASKPANEL_FIRST = 180
Public Const ID_TASKPANEL_LAST = 182
Public Const FSHIFT = 4
Public Const FCONTROL = 8
Public Const FALT = 16
Public Const VK_BACK = &H8
Public Const VK_TAB = &H9
Public Const VK_ESCAPE = &H1B
Public Const VK_SPACE = &H20
Public Const VK_PRIOR = &H21
Public Const VK_NEXT = &H22
Public Const VK_END = &H23
Public Const VK_HOME = &H24
Public Const VK_LEFT = &H25
Public Const VK_UP = &H26
Public Const VK_RIGHT = &H27
Public Const VK_DOWN = &H28
Public Const VK_INSERT = &H2D
Public Const VK_DELETE = &H2E
Public Const VK_MULTIPLY = &H6A
Public Const VK_ADD = &H6B
Public Const VK_SEPARATOR = &H6C
Public Const VK_SUBTRACT = &H6D
Public Const VK_DECIMAL = &H6E
Public Const VK_DIVIDE = &H6F
Public Const VK_F1 = &H70
Public Const VK_F2 = &H71
Public Const VK_F3 = &H72
Public Const VK_F4 = &H73
Public Const VK_F5 = &H74
Public Const VK_F6 = &H75
Public Const VK_F7 = &H76
Public Const VK_F8 = &H77
Public Const VK_F9 = &H78
Public Const VK_F10 = &H79
Public Const VK_F11 = &H7A
Public Const VK_F12 = &H7B
Public Const ID_INDICATOR_CAPS = 59137
Public Const ID_INDICATOR_NUM = 59138
Public Const ID_INDICATOR_SCRL = 59139
Public Const MSG_TITLE As String = "提示"