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

暂位。备用
页: 1 [2] 3
查看完整版本: au3怎样做这样的下拉列表框(已解决)