Public Declare Function CHOOSECOLOR _ Lib "comdlg32.dll" Alias "ChooseColorA" _ (pChoosecolor As CHOOSECOLOR) As Long Private Type CHOOSECOLOR lStructSize As Long hwndOwner As Long hInstance As Long rgbResult As Long lpCustColors As String flags As Long lCustData As Long lpfnHook As Long lpTemplateName As String End Type Public Function ShowColor(MehWnd As Long, _ GetColour As Long, _ Optional flags As Long = 0) Dim CC As CHOOSECOLOR Dim Rc As Long Dim CustC() As Byte
说明具体对象的表达式,可以包含对象的容器。例如,应用程序可以拥有 Application 对象,其中包含 Document 对象,而 Document 对象又包含 Text 对象。ShowColor、 ShowFont、 ShowHelp、 ShowOpen、 ShowPrinter、ShowSave 各方法示例
本例使用 CommonDialog 控件和 ShowColor,ShowFont,ShowHelp,ShowOpen,ShowPrinter,和 ShowSav 等方法,显示公共对话框。要试用此例子,将代码粘贴到窗体的声明部分,该窗体带有 CommandButton,OptionButton(设置该选项按钮的 Index 属性为 0)、以及 CommonDialog 控件。按 F5 键,为所要的公共对话框选择选项按钮,再选取命令按钮。Private Sub Form_Paint ()
Static FlagFormPainted As Integer
' 当第一次画窗体时,
If FlagFormPainted <> True Then
For i = 1 To 5
Load Option1(i) ' 给数组添加 5 个选项按钮。
Option1(i).Top = Option1(i - 1).Top + 350
Option1(i).Visible = True
Next i
Option1(0).Caption = "Open" ' 在每个选项按钮上放置标题。
Option1(1).Caption = "Save"
Option1(2).Caption = "Color"
Option1(3).Caption = "Font"
Option1(4).Caption = "Printer"
Option1(5).Caption = "Help"
Command1.Caption = "Show Dlg" ' 标签命令按钮。
FlagFormPainted = True ' 窗体已画完。
End If
End SubPrivate Sub Command1_Click ()
If Option1(0).Value Then ' 如果选择打开选箱,
CommonDialog1.ShowOpen ' 显示打开公共对话框。
ElseIf Option1(1).Value Then ' 否则,
CommonDialog1.ShowSave ' 显示 Save 公共对话框。
ElseIf Option1(2).Value Then ' 否则,
CommonDialog1.ShowColor ' 显示 Color 公共对话框。
ElseIf Option1(3).Value Then ' 否则,
CommonDialog1.Flags = cdlCFBoth ' 在使用ShowFont 方法之前,
'必须给 cdlCFBoth, ' cdlCFPrinterFonts,
'或 cdlCFScreenFonts
' 置标识属性。
CommonDialog1.ShowFont ' 显示字体公共对话框。
ElseIf Option1(4).Value Then ' 或,
CommonDialog1.ShowPrinter ' 显示打印机公共对话框。
ElseIf Option1(5).Value Then ' 或
CommonDialog1.HelpFile = "VB5.hlp"
CommonDialog1.HelpCommand = cdlHelpContents
CommonDialog1.ShowHelp' 显示 Visual Basic 帮助目录主题。
End If
End Sub
如:
commondialog.showcolor
Lib "comdlg32.dll" Alias "ChooseColorA" _
(pChoosecolor As CHOOSECOLOR) As Long
Private Type CHOOSECOLOR
lStructSize As Long
hwndOwner As Long
hInstance As Long
rgbResult As Long
lpCustColors As String
flags As Long
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Public Function ShowColor(MehWnd As Long, _
GetColour As Long, _
Optional flags As Long = 0)
Dim CC As CHOOSECOLOR
Dim Rc As Long
Dim CustC() As Byte
With CC
.hwndOwner = MehWnd
.hInstance = App.hInstance
.lpCustColors = StrConv(CustC, vbUnicode)
.rgbResult = GetColour
.flags = flags
.lStructSize = Len(CC)
End With
Rc = CHOOSECOLOR(CC)
If Rc Then
GetColour = CC.rgbResult
ShowColor = -1
Else
ShowColor = 0
End If
End Function