找回密码
 加入
搜索
楼主: fuldho

[AU3基础] au3怎样做这样的下拉列表框(已解决)

 火... [复制链接]
发表于 2012-3-10 13:22:12 | 显示全部楼层
是不是下图这样

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2012-3-10 14:00:18 | 显示全部楼层
学习了,,,,,,,,,,,,,
 楼主| 发表于 2012-3-10 14:02:42 | 显示全部楼层
回复 16# lindafu


    对!可以提供一下吗?
发表于 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

评分

参与人数 1金钱 +20 收起 理由
afan + 20

查看全部评分

 楼主| 发表于 2012-3-10 15:35:56 | 显示全部楼层
讲年龄我前辈,技术你才是前辈!
发表于 2012-3-10 16:38:00 | 显示全部楼层
回复 19# 3mile
三笑,说老实话,初看lz的问题,我以为是要自动识别颜色呢,像这么做大概和读取项名区别不大了
 楼主| 发表于 2012-3-10 16:54:26 | 显示全部楼层
回复 21# netegg


   对!就是象16楼那样显示并读取值, 19楼的我还是看不懂。
发表于 2012-3-10 17:42:57 | 显示全部楼层
不大理解前辈的意思.
首先要在Imagelist建立图像啊,如果不知道图像的RGB值怎么能建立呢?
既然已经知道了图像的RGB,直接调用就行了,何必要读取呢?
莫非是建立之后读取选中项的RGB值?那就直接_GUICtrlComboBoxEx_GetItemText
发表于 2012-3-10 18:17:35 | 显示全部楼层
三笑这话到关键了,我的意思就是,楼主到底是(比如随机)附个颜色的图片然后去识别这个颜色,还是直接创建颜色然后自己定义项目值
 楼主| 发表于 2012-3-10 18:40:03 | 显示全部楼层
本帖最后由 fuldho 于 2012-3-10 18:43 编辑

回复 19# 3mile


就是取色

颜色个数是已定的,
比如:三种颜色,0XFF0000、0X00FF00、0X0000FF
组成下拉列表,选中一种,
如:“红”
MsgBox返回:“你选中的是'0XFF0000' ”

我只能做这种组合框

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 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

评分

参与人数 1金钱 +10 收起 理由
afan + 10

查看全部评分

发表于 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[3] = ['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[0]
                                        _GUICtrlComboBoxEx_GetItemText ($hCombo, $Count, $sText)
                                        MsgBox(0, 0, $sText)
                        EndSwitch
        EndSwitch
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_COMMAND

评分

参与人数 1金钱 +30 贡献 +5 收起 理由
fuldho + 30 + 5 非常感谢!

查看全部评分

发表于 2012-3-10 23:38:31 | 显示全部楼层
本帖最后由 502762378 于 2012-3-10 23:39 编辑

还以为读图的颜色获取RGB值呢。
发表于 2012-3-12 14:19:32 | 显示全部楼层
有学啦 赚咯
发表于 2012-3-14 13:14:45 | 显示全部楼层
暂位。备用
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-16 12:17 , Processed in 0.072016 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表