扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
现在让我们先设计程序界面。启动VB6.0并新建一个“标准EXE”工程。首先修改窗体的Name属性为“frmColor”。接着添加一个较大的图形框Picture1作为颜色显示器,和一个较小的图形框Picture2作为颜色拾取工具,注意Picture2的Icon属性和Picture1属性为同一个图标,图标任意。添加一个文本框,设置其Name属性为txtHex,用来显示相应颜色的16 位进制值。添加三个标签,Name属性分别为lblRed、lblGreen、lblBlue,以及相应的三个水平滚动条,Name属性分别为hslRed、hslGreen、hslBlue。最后设计好的窗体如图2所示。
好了,现在我们开始编写代码。打开代码编辑器,输入以下代码:
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1
Private Const SWP_NOSIZE = &H1
Private Sub Form_Load()
''设置窗口在最上层
SetWindowPos frmColor.hwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE
''设置滚动条的范围(0-255)
hslRed.Max = 255: hslGreen.Max = 255: hslBlue.Max = 255
hslRed.LargeChange = 10: hslGreen.LargeChange = 10: hslBlue.LargeChange = 10
End Sub
滚动条箭头变化
Private Sub hslBlue_Change()
text_Change
ColorChange_hsl
End Sub
''滚动块变化
Private Sub hslBlue_Scroll()
text_Change
ColorChange_hsl
End Sub
Private Sub hslGreen_Change()
text_Change
ColorChange_hsl
End Sub
Private Sub hslGreen_Scroll()
text_Change
ColorChange_hsl
End Sub
Private Sub hslRed_Change()
text_Change
ColorChange_hsl
End Sub
Private Sub hslRed_Scroll()
text_Change
ColorChange_hsl
End Sub
''文本框内容变化
Private Sub text_Change()
Dim strRedv, strGreenv, strbluev As String
lblRed.Caption = "R: " & hslRed.Value
lblGreen.Caption = "G: " & hslGreen.Value
lblBlue.Caption = "B: " & hslBlue.Value
strRedv = Hex(hslRed.Value)
strGreenv = Hex(hslGreen.Value)
strbluev = Hex(hslBlue.Value)
txtHex.Text = "#" & strRedv & strGreenv & strbluev
End Sub
''picture1的背景颜色变化
Private Sub ColorChange_hsl()
Picture1.BackColor = RGB(hslRed.Value, hslGreen.Value, hslBlue.Value)
End Sub
按F5编译运行程序,呵呵,我们已经得到一个具备常用功能的调色盘程序了。但是,这个程序暂时还不支持全屏取色功能,还需要进一步修改。
为了得到全屏取色功能,我们需要调用一些额外的API函数。首先点击VB菜单条中的“外接程序(Add-Ins)/外接程序管理器(Add-In Manager)”打开外接程序管理器窗口,在可用外接程序中选择“VB API Viewer”选项,确认已经选中“加载/卸载”复选框后点击“确定”,以后你就可以从菜单的“外接程序”中加载“VB API Viewer”了。打开“VB API Viewer”,点击“文件/加载文本文件”,在“选择一个文本API”对话框中打开 “WIN32API”文件。接着,先把“API类型”设为“声明”,并设置“ 声明范围”为“私有”,依次添加BitBlt、GetCursorPos、GetDC、GetPixel、 ScreenToClient、WindowFromPoint函数到“选定项”窗口中。然后设置 “API类型”为“类型”,添加“POINTAPI”类型到“选定项”窗口中。OK,按下“插入”按钮把代码粘贴到我们的“frmColor”中。下面就是程序中所有必需的函数说明:
Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1
Private Const SWP_NOSIZE = &H1
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 GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
End Sub
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者