用通用对话框控件的ShowColor 方法

解决方案 »

  1.   

    ShowColor 方法显示 CommonDialog 控件的“颜色”对话框。语法object.ShowColorobject 所在处代表对象表达式,其值是“应用于”列表中的对象。对象表达式
    说明具体对象的表达式,可以包含对象的容器。例如,应用程序可以拥有 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
      

  2.   

    用commondialog中的showcolor就行了
    如:
    commondialog.showcolor
      

  3.   

    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
        
        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