solo_k 发表于 2015-1-4 23:27:22

请问如何在combox中嵌入checkbox

{:face (229):}
急求高手解决,跪谢!!!

netegg 发表于 2015-1-5 01:11:46

combox只能选一项嵌入复选框干什么

solo_k 发表于 2015-1-5 10:37:40

回复 2# netegg
就是想要可以选中多项嘛

netegg 发表于 2015-1-5 10:59:39

本帖最后由 netegg 于 2015-1-5 11:01 编辑

回复 3# solo_k
关键你怎么显示啊,不是不行,但感觉没什么必要

netegg 发表于 2015-1-5 11:04:15

本帖最后由 netegg 于 2015-1-5 11:05 编辑

思路简单说一下,获取点击下拉箭头消息,点击时,弹出一个listbox,作为单独一个控件处理,随便加,放弃原来的combo自带的下拉列表

netegg 发表于 2015-1-5 13:36:25

本帖最后由 netegg 于 2015-1-5 13:54 编辑

只能告诉你建个图像列表,然后切换索引,图像分别是@SystemDir & "\rasdlg.dll", 1/@SystemDir & "\rasdlg.dll", 0
怎么玩就看自己了,肯定要用到消息操作
#include <GuiComboBoxEx.au3>
#include <GuiImageList.au3>
#include <GuiConstantsEx.au3>

Opt('MustDeclareVars', 1)

$Debug_CB = False ; Check ClassName being passed to ComboBox/ComboBoxEx functions, set to True and use a handle to another control to see it work

_Main()

Func _Main()
        Local $hGUI, $hImage, $image, $hCombo
       
        ; Create GUI
        $hGUI = GUICreate("ComboBoxEx Get/Set Item Image", 400, 300)
        $hCombo = _GUICtrlComboBoxEx_Create ($hGUI, "", 2, 2, 394, 100)
        GUISetState()

        $hImage = _GUIImageList_Create (16, 16, 5, 3)
        _GUIImageList_AddIcon ($hImage, @SystemDir & "\rasdlg.dll", 1)
        _GUIImageList_AddIcon ($hImage, @SystemDir & "\rasdlg.dll", 0)
        _GUICtrlComboBoxEx_SetImageList ($hCombo, $hImage)

        _GUICtrlComboBoxEx_BeginUpdate ($hCombo)
        For $x = 0 To 10
                $image = Random(0, 1, 1)
                _GUICtrlComboBoxEx_AddString ($hCombo, StringFormat("%03d : Random string", Random(1, 10, 1)), $image, $image)
        Next
        _GUICtrlComboBoxEx_EndUpdate ($hCombo)
        _GUICtrlComboBoxEx_SetItemImage ($hCombo, 1, 1)
        MsgBox(4160, "Information", "Item Image: " & _GUICtrlComboBoxEx_GetItemImage ($hCombo, 0))

        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>_Main

solo_k 发表于 2015-1-5 15:04:58

{:face (239):}
看效果好像不错,我先试试
谢谢net兄

solo_k 发表于 2015-1-5 15:10:38

回复 6# netegg

你这个只是做出了一个样子,但不是真正下拉复选框
我想要的效果就是,比如下拉菜单中有1,2,3,4,5五个选项
我选择了1,2,3,然后combox的那个栏中就会显示1|2|3

solo_k 发表于 2015-1-5 15:11:24

回复 6# netegg


    不过还是谢谢啦,我再研究研究

netegg 发表于 2015-1-5 15:37:51

本帖最后由 netegg 于 2015-1-5 15:49 编辑

我不是说了吗,点击哪项,用消息获取索引,检查图像索引,0/1,然后获取文本,设置编辑框就行了
那部分之所以没写,是因为太麻烦,要考虑很多情况
先说两种,第一种情况,如果在编辑框里删除,复选项清不清,第二种,先取消复选,又选上该项,是加到编辑框尾部,还是原来的位置

netegg 发表于 2015-1-5 16:55:48

本帖最后由 netegg 于 2015-1-5 17:21 编辑

简单的,后续处理自己琢磨
#include <GuiComboBoxEx.au3>
#include <GuiImageList.au3>
#include <GuiConstantsEx.au3>
#include <GuiEdit.au3>

Opt('MustDeclareVars', 1)

$Debug_CB = False ; Check ClassName being passed to ComboBox/ComboBoxEx functions, set to True and use a handle to another control to see it work

_Main()

Func _Main()
        Local $hGUI, $hImage, $image, $hCombo, $sText, $ret = '', $hEdit

        ; Create GUI
        $hGUI = GUICreate("ComboBoxEx Get/Set Item Image", 400, 300)
        $hCombo = _GUICtrlComboBoxEx_Create($hGUI, "", 2, 2, 394, 100)
        GUISetState()

        $hImage = _GUIImageList_Create(16, 16, 5, 3)
        _GUIImageList_AddIcon($hImage, @SystemDir & "\rasdlg.dll", 1)
        _GUIImageList_AddIcon($hImage, @SystemDir & "\rasdlg.dll", 0)
        _GUICtrlComboBoxEx_SetImageList($hCombo, $hImage)

        _GUICtrlComboBoxEx_BeginUpdate($hCombo)
        For $x = 0 To 10
                $image = Random(0, 1, 1)
                _GUICtrlComboBoxEx_AddString($hCombo, $x, $image, $image)
        Next
        _GUICtrlComboBoxEx_SetItemImage($hCombo, 1, 1)
        _GUICtrlComboBoxEx_EndUpdate($hCombo)
        For $i = 0 To 10
                If _GUICtrlComboBoxEx_GetItemImage($hCombo, $i) = 1 Then
                        _GUICtrlComboBoxEx_GetItemText($hCombo, $i, $sText)
                        $ret &= $sText & '|'
                EndIf
        Next
        $hEdit = _GUICtrlComboBoxEx_GetEditControl($hCombo)
        _GUICtrlEdit_SetText($hEdit, stringtrimright($ret, 1))
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>_Main

solo_k 发表于 2015-1-5 17:17:48

回复 11# netegg
{:face (88):}
好的,谢谢,我再认真研究一下

weeks5 发表于 2015-1-8 07:54:39

学习了,,,,,,,,,,

xfxecs 发表于 2015-1-10 10:59:53

同学习了 虽然目前还看不懂

netegg 发表于 2015-1-11 00:51:48

对了,还有个问题,点击会直接收回下拉框,可能还要想想
页: [1] 2
查看完整版本: 请问如何在combox中嵌入checkbox