如何解决Visual Basic 6VB6的颜色选择器控件
| 我正在寻找Visual Basic 6的免费颜色选择器控件。有没有? 更新。这是我到目前为止发现的: Photoshop风格的拾色器 带有示例代码的拾色器控件解决方法
看看:http://www.devx.com/vb2themax/Tip/19257
它应该显示标准的颜色对话框(comdlg32.dll中的“ ChooseColor API”)。
为了方便起见,下面是代码:
Private Type ChooseColorStruct
lStructSize As Long
hwndOwner As Long
hInstance As Long
rgbResult As Long
lpCustColors As Long
flags As Long
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
Private Declare Function ChooseColor Lib \"comdlg32.dll\" Alias \"ChooseColorA\" _
(lpChoosecolor As ChooseColorStruct) As Long
Private Declare Function OleTranslateColor Lib \"oleaut32.dll\" (ByVal lOleColor _
As Long,ByVal lHPalette As Long,lColorRef As Long) As Long
Private Const CC_RGBINIT = &H1&
Private Const CC_FULLOPEN = &H2&
Private Const CC_PREVENTFULLOPEN = &H4&
Private Const CC_SHOWHELP = &H8&
Private Const CC_ENABLEHOOK = &H10&
Private Const CC_ENABLETEMPLATE = &H20&
Private Const CC_ENABLETEMPLATEHANDLE = &H40&
Private Const CC_SOLIDCOLOR = &H80&
Private Const CC_ANYCOLOR = &H100&
Private Const CLR_INVALID = &HFFFF
\' Show the common dialog for choosing a color.
\' Return the chosen color,or -1 if the dialog is canceled
\'
\' hParent is the handle of the parent form
\' bFullOpen specifies whether the dialog will be open with the Full style
\' (allows to choose many more colors)
\' InitColor is the color initially selected when the dialog is open
\' Example:
\' Dim oleNewColor As OLE_COLOR
\' oleNewColor = ShowColorsDialog(Me.hwnd,True,vbRed)
\' If oleNewColor <> -1 Then Me.BackColor = oleNewColor
Function ShowColorDialog(Optional ByVal hParent As Long,_
Optional ByVal bFullOpen As Boolean,Optional ByVal InitColor As OLE_COLOR) _
As Long
Dim CC As ChooseColorStruct
Dim aColorRef(15) As Long
Dim lInitColor As Long
\' translate the initial OLE color to a long value
If InitColor <> 0 Then
If OleTranslateColor(InitColor,lInitColor) Then
lInitColor = CLR_INVALID
End If
End If
\'fill the ChooseColorStruct struct
With CC
.lStructSize = Len(CC)
.hwndOwner = hParent
.lpCustColors = VarPtr(aColorRef(0))
.rgbResult = lInitColor
.flags = CC_SOLIDCOLOR Or CC_ANYCOLOR Or CC_RGBINIT Or IIf(bFullOpen,_
CC_FULLOPEN,0)
End With
\' Show the dialog
If ChooseColor(CC) Then
\'if not canceled,return the color
ShowColorDialog = CC.rgbResult
Else
\'else return -1
ShowColorDialog = -1
End If
End Function
, VB6内置了一个选色器。通用对话框控件可以用作颜色选择器。
这是VB6手册中的代码示例
Private Sub Command1_Click()
\' Set Cancel to True
CommonDialog1.CancelError = True
On Error GoTo ErrHandler
\'Set the Flags property
CommonDialog1.Flags = cdlCCRGBInit
\' Display the Color Dialog box
CommonDialog1.ShowColor
\' Set the form\'s background color to selected color
Form1.BackColor = CommonDialog1.Color
Exit Sub
ErrHandler:
\' User pressed the Cancel button
End Sub
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。