lindafu
发表于 2012-3-10 13:22:12
是不是下图这样
zhang_chg
发表于 2012-3-10 14:00:18
学习了,,,,,,,,,,,,,
fuldho
发表于 2012-3-10 14:02:42
回复 16# lindafu
对!可以提供一下吗?
3mile
发表于 2012-3-10 15:20:34
前辈请注意休息.生体是革命的本钱啊.
#include <GuiComboBoxEx.au3>
#include <GuiImageList.au3>
#include <GuiConstantsEx.au3>
#include <Array.au3>
#include <INet.au3>
Opt('MustDeclareVars', 1)
$Debug_CB = False ; 检查传递给ComboBox/ComboBoxEx函数的类名, 设置为真并使用另一控件的句柄查看其运行
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $hImage, $hCombo
Local $s_URL="http://www.360doc.com/showWeb/0/0/4571056.aspx"
Local $sText = _INetGetSource($s_URL)
Local $Color_Array=StringRegExp($sText,'>#([[:xdigit:]]{6})<',3)
; 创建界面
$hGUI = GUICreate("ComboBoxEx Image List", 400, 300)
$hCombo = _GUICtrlComboBoxEx_Create($hGUI, "", 2, 2, 394, -1, $CBS_DROPDOWNLIST, $CBES_EX_NOSIZELIMIT)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
$hImage = _GUIImageList_Create(24, 24, 5, 3)
For $i=0 To UBound($Color_Array)-1
_GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo, Binary("0x"&$Color_Array[$i]), 24, 24))
Next
;~ _GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo, 0xFF0000, 24, 24))
;~ _GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo, 0x00FF00, 24, 24))
;~ _GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo, 0x0000FF, 24, 24))
; 设置图像列表
_GUICtrlComboBoxEx_SetImageList($hCombo, $hImage)
For $x = 0 To UBound($Color_Array)-1
_GUICtrlComboBoxEx_AddString($hCombo, "0x"&$Color_Array[$x], $x, $x)
Next
_GUICtrlComboBoxEx_SetCurSel($hCombo, 0)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
fuldho
发表于 2012-3-10 15:35:56
讲年龄我前辈,技术你才是前辈!
netegg
发表于 2012-3-10 16:38:00
回复 19# 3mile
三笑,说老实话,初看lz的问题,我以为是要自动识别颜色呢,像这么做大概和读取项名区别不大了
fuldho
发表于 2012-3-10 16:54:26
回复 21# netegg
对!就是象16楼那样显示并读取值, 19楼的我还是看不懂。
3mile
发表于 2012-3-10 17:42:57
不大理解前辈的意思.
首先要在Imagelist建立图像啊,如果不知道图像的RGB值怎么能建立呢?
既然已经知道了图像的RGB,直接调用就行了,何必要读取呢?
莫非是建立之后读取选中项的RGB值?那就直接_GUICtrlComboBoxEx_GetItemText
netegg
发表于 2012-3-10 18:17:35
三笑这话到关键了,我的意思就是,楼主到底是(比如随机)附个颜色的图片然后去识别这个颜色,还是直接创建颜色然后自己定义项目值
fuldho
发表于 2012-3-10 18:40:03
本帖最后由 fuldho 于 2012-3-10 18:43 编辑
回复 19# 3mile
就是取色
颜色个数是已定的,
比如:三种颜色,0XFF0000、0X00FF00、0X0000FF
组成下拉列表,选中一种,
如:“红”
MsgBox返回:“你选中的是'0XFF0000' ”
我只能做这种组合框
lindafu
发表于 2012-3-10 19:20:30
给楼主直观点的
#include <GuiComboBoxEx.au3>
#include <GuiImageList.au3>
#include <GuiConstantsEx.au3>
Opt('MustDeclareVars', 1)
$Debug_CB = False ; 检查被传递到 ComboBox/ComboBoxEx 函数的类名, 设置为True,并使用另一个控件句柄,看看它的工作.
_Main()
Func _Main()
Local $hGUI, $hImage, $hCombo
; 创建 GUI
$hGUI = GUICreate("ComboBoxEx Create Solid BitMap", 400, 300)
$hCombo = _GUICtrlComboBoxEx_Create($hGUI, "", 2, 2, 394, 100)
GUISetState()
$hImage = _GUIImageList_Create(16, 16, 5, 3)
_GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo, 0xFF0000, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo, 0x00FF00, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo, 0x0000FF, 16, 16))
_GUICtrlComboBoxEx_SetImageList($hCombo, $hImage)
_GUICtrlComboBoxEx_AddString($hCombo, "0xFF0000", 0, 0)
_GUICtrlComboBoxEx_AddString($hCombo, "0x00FF00", 1, 1)
_GUICtrlComboBoxEx_AddString($hCombo, "0x0000FF", 2, 2)
_GUICtrlComboBoxEx_SetCurSel($hCombo, 0)
Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc ;==>_Main
lixiaolong
发表于 2012-3-10 21:13:46
本帖最后由 lixiaolong 于 2012-3-10 21:18 编辑
#include <GuiComboBoxEx.au3>
#include <GuiImageList.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Global $hGUI, $hImage, $hCombo, $msg, $iMemo
Global $Color = ['0xFF0000', '0x00FF00', '0x0000FF']
_Main()
Func _Main()
; 创建界面
$hGUI = GUICreate("ComboBoxEx Image List", 400, 300)
$hCombo = _GUICtrlComboBoxEx_Create($hGUI, "", 2, 2, 394, -1, $CBS_DROPDOWNLIST, $CBES_EX_NOSIZELIMIT)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
GUISetState()
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
$hImage = _GUIImageList_Create(24, 24, 5, 3)
For $i = 0 To UBound($Color) - 1
_GUIImageList_Add($hImage, _GUICtrlComboBoxEx_CreateSolidBitMap($hCombo, $Color[$i], 24, 24))
Next
; 设置图像列表
_GUICtrlComboBoxEx_SetImageList($hCombo, $hImage)
For $x = 0 To UBound($Color) - 1
_GUICtrlComboBoxEx_AddString($hCombo, $Color[$x], $x, $x)
Next
_GUICtrlComboBoxEx_SetCurSel($hCombo, 0)
While 1
$msg = GUIGetMsg()
Switch $msg
Case -3
Exit
EndSwitch
WEnd
EndFunc ;==>_Main
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
#forceref $hWnd, $iMsg
Local $hWndFrom, $iCode, $Count, $sText
$hWndFrom = $ilParam
$iCode = BitShift($iwParam, 16)
Switch $hWndFrom
Case $hCombo
Switch $iCode
Case $CBN_SELCHANGE ; Sent when the user changes the current selection in the list box of a combo box
$Count = _GUICtrlComboBoxEx_GetCurSel($hCombo)
;~ $sText = _GUICtrlComboBoxEx_GetItem($hCombo, $Count); $sText
_GUICtrlComboBoxEx_GetItemText ($hCombo, $Count, $sText)
MsgBox(0, 0, $sText)
EndSwitch
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND
502762378
发表于 2012-3-10 23:38:31
本帖最后由 502762378 于 2012-3-10 23:39 编辑
还以为读图的颜色获取RGB值呢。
vason1019
发表于 2012-3-12 14:19:32
有学啦 赚咯
lhy6456210
发表于 2012-3-14 13:14:45
暂位。备用