首页
社区
课程
招聘
[求助]win32 combo box 如何弹出列表??
发表于: 2015-11-26 21:20 5935

[求助]win32 combo box 如何弹出列表??

2015-11-26 21:20
5935
句柄_选择服务器下拉框 = CreateWindow(TEXT("combobox"), NULL,
                WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, 690, 468, 90, 20, hwnd, NULL, 实例句柄_选择服务器下拉框, NULL);

        句柄_代答平台下拉框 = CreateWindow(TEXT("combobox"), NULL,
                WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, 485, 410, 120, 20, hwnd, NULL, 实例句柄_代答平台下拉框, NULL);

        句柄_选择大区下拉框 = CreateWindow(TEXT("combobox"), NULL,
                WS_CHILD | WS_VISIBLE | CBS_DROPDOWN, 485, 468, 120, 20, hwnd, NULL, 实例句柄_选择大区下拉框, NULL);

        SendMessage(句柄_选择服务器下拉框, CB_ADDSTRING, 0, (LPARAM)TEXT("**服务1"));
        SendMessage(句柄_选择服务器下拉框, CB_ADDSTRING, 1, (LPARAM)TEXT("**服务2"));
        SendMessage(句柄_选择服务器下拉框, CB_SETCURSEL, 0, 0);

        SendMessage(句柄_代答平台下拉框, CB_ADDSTRING, 0, (LPARAM)TEXT("**代答1"));
        SendMessage(句柄_代答平台下拉框, CB_ADDSTRING, 1, (LPARAM)TEXT("**代答2"));
        SendMessage(句柄_代答平台下拉框, CB_SETCURSEL, 0, 0);
       
        SendMessage(句柄_选择大区下拉框, CB_ADDSTRING, 0, (LPARAM)TEXT("**大区1"));
        SendMessage(句柄_选择大区下拉框, CB_ADDSTRING, 1, (LPARAM)TEXT("**大区2"));
        SendMessage(句柄_选择大区下拉框, CB_SETCURSEL, 0, 0);

目前已可以正常显示数据,查询了百度 google均无弹出列表的相关例子,请大大指点

  //ComboBoxEx Control,扩展组合框控件消息
    IDSTR(CBEM_DELETEITEM),"删除CComboBoxEx控件中的某个条目",
    IDSTR(CBEM_GETCOMBOCONTROL),"获取CComboBoxEx控件中组合框控件的句柄",
    IDSTR(CBEM_GETEDITCONTROL),"获取CComboBoxEx控件中编辑框控件的句柄",
    IDSTR(CBEM_GETEXTENDEDSTYLE),"获取CComboBoxEx控件的扩展风格",
    IDSTR(CBEM_GETIMAGELIST),"获取CComboBoxEx控件使用的图像列表的句柄",
    IDSTR(CBEM_GETITEM),"获取CComboBoxEx控件中某条目的信息,相关结构:COMBOBOXEXITEM",
    IDSTR(CBEM_GETUNICODEFORMAT),"获取CComboBoxEx控件的UNICODE格式标志",
    IDSTR(CBEM_HASEDITCHANGED),"确定用户是否在CComboBoxEx控件的编辑框中输入了字符",
    IDSTR(CBEM_INSERTITEM),"向CComboBoxEx控件插入一个条目,相关结构:COMBOBOXEXITEM",
    IDSTR(CBEM_SETEXTENDEDSTYLE),"设置CComboBoxEx控件的扩展风格",
    IDSTR(CBEM_SETIMAGELIST),"设置CComboBoxEx控件使用的图像列表",
    IDSTR(CBEM_SETITEM),"设置CComboBoxEx控件中某条目的属性,相关结构:COMBOBOXEXITEM",
    IDSTR(CBEM_SETUNICODEFORMAT),"设置CComboBoxEx控件的UNICODE格式标志",

    //ComboBoxEx Control,扩展组合框控件通知消息
    IDSTR(CBEN_BEGINEDIT),"用户激活下拉列表或点击CComboBoxEx控件的编辑框,相关结构:NMHDR",
    IDSTR(CBEN_DELETEITEM),"CComboBoxEx控件的某条目已被删除,相关结构:NMCOMBOBOXEX",
    IDSTR(CBEN_DRAGBEGIN),"用户开始拖动CComboBoxEx控件的编辑框中的条目图像,相关结构:NMCBEDRAGBEGIN",
    IDSTR(CBEN_ENDEDIT),"用户已结束对CComboBoxEx控件的编辑框的操作或选择了下拉列表,相关结构:NMCBEENDEDIT",
    IDSTR(CBEN_GETDISPINFO),"获取CComboBoxEx控件的回调条目的显示信息,相关结构:NMCOMBOBOXEX",
    IDSTR(CBEN_INSERTITEM),"一个新条目已插入到CComboBoxEx控件,相关结构:NMCOMBOBOXEX",

//组合框控件消息
    IDSTR(CB_GETEDITSEL),"用于取得组合框所包含编辑框子控件中当前被选中的字符串的起止位置,对应函数:GetEditSel",
    IDSTR(CB_LIMITTEXT),"用于限制组合框所包含编辑框子控件输入文本的长度",
    IDSTR(CB_SETEDITSEL),"用于选中组合框所包含编辑框子控件中的部分字符串,对应函数:GetEditSel",
    IDSTR(CB_ADDSTRING),"用于向组合框控件追加一个列表项(字符串)",
    IDSTR(CB_DELETESTRING),"用于删除组合框中指定的列表项(字符串)",
    IDSTR(CB_DIR),"用于向组合框控件所包含的列表框控件中添加一个文件名列表清单",
    IDSTR(CB_GETCOUNT),"用于返回组合框控件中列表项的总项数",
    IDSTR(CB_GETCURSEL),"用于返回当前被选择项的索引",
    IDSTR(CB_GETLBTEXT),"获取组合框控件中指定列表项的字符串",
    IDSTR(CB_GETLBTEXTLEN),"用于返回组合框控件中指定列表项的字符串的长度(不包括结束符0)",
    IDSTR(CB_INSERTSTRING),"在组合框控件所包含的列表框子控件中的指定位置插入字符串",
    IDSTR(CB_RESETCONTENT),"用于清除组合框控件所有列表项",
    IDSTR(CB_FINDSTRING),"在组合框控件中根据给定的字符串查找匹配字符串(忽略大小写)",
    IDSTR(CB_SELECTSTRING),"在组合框控件中设定与指定字符串相匹配的列表项为选中项",
    IDSTR(CB_SETCURSEL),"在组合框控件中设置指定的列表项为当前选择项",
    IDSTR(CB_SHOWDROPDOWN),"用于显示或关闭下拉式和下拉列表式组合框的列表框",
    IDSTR(CB_GETITEMDATA),"组合框控件每个列表项都有一个32位的附加数据,本消息用于返回指定列表项的附加数据",
    IDSTR(CB_SETITEMDATA),"用于更新组合框所包含的列表框所指定的列表项的32位附加数据",
    IDSTR(CB_GETDROPPEDCONTROLRECT),"用于取组合框中列表框的屏幕位置",
    IDSTR(CB_SETITEMHEIGHT),"指定组合框中列表项的显示高度(像素点)",
    IDSTR(CB_GETITEMHEIGHT),"用于返回指定列表项的高度(像素点)",
    IDSTR(CB_SETEXTENDEDUI),"指定下拉式或下拉列表式组合框是使用默认界面还是扩展界面",
    IDSTR(CB_GETEXTENDEDUI),"用于返回组合框是否存在扩展界面",
    IDSTR(CB_GETDROPPEDSTATE),"用于取组合框中列表框是否可见",
    IDSTR(CB_FINDSTRINGEXACT),"在组合框中查找字符串,忽略大小写,与CB_FINDSTRING不同,本消息必须整个字符串相同",
    IDSTR(CB_SETLOCALE),"设置组合框列表项当前用于排序的语言代码",
    IDSTR(CB_GETLOCALE),"获取组合框列表项当前用于排序的语言代码",
    IDSTR(CB_GETTOPINDEX),"获取组合框中列表框中第一个可见项的索引",
    IDSTR(CB_SETTOPINDEX),"用于将指定的组合框中列表项设置为列表框的第一个可见项",
    IDSTR(CB_GETHORIZONTALEXTENT),"用于返回组合框水平滚动的总宽度(像素点)(要具有水平滚动条)",
    IDSTR(CB_SETHORIZONTALEXTENT),"用于设定组合框中的列表框的宽度",
    IDSTR(CB_GETDROPPEDWIDTH),"取组合框中列表框的宽度(像素点)",
    IDSTR(CB_SETDROPPEDWIDTH),"用于设定组合框中的列表框的最大允许宽度",
    IDSTR(CB_INITSTORAGE),"只适用于Win95,当将要向组合框中列表框中加入大量表项时,本消息将预先分配一块内存,以免大量添加表项多次分配内存,从而加快程序运行速度",
    IDSTR(CB_MSGMAX),"该消息还具有三个消息值:0x0162,0x0163,0x0165,消息含义不明,搜索了整个Visual Studio 6的目录也只有其定义,却未见其使用的相关代码",

    //组合框控件通知消息
    IDSTR(CBN_CLOSEUP),"通知父窗(通过WM_COMMAND获知),组合框的列表框被关闭",
    IDSTR(CBN_DBLCLK),"通知父窗(通过WM_COMMAND获知),用户双击了组合框中的一个字符串",
    IDSTR(CBN_DROPDOWN),"通知父窗(通过WM_COMMAND获知),组合框的列表框被弹出",
    IDSTR(CBN_EDITCHANGE),"通知父窗(通过WM_COMMAND获知),用户修改了组合框所含编辑框中的文本",
    IDSTR(CBN_EDITUPDATE),"通知父窗(通过WM_COMMAND获知),组合框所含编辑框内的文本即将更新",
    IDSTR(CBN_ERRSPACE),"通知父窗(通过WM_COMMAND获知),组合框内存不足",
    IDSTR(CBN_KILLFOCUS),"通知父窗(通过WM_COMMAND获知),组合框失去输入焦点",
    IDSTR(CBN_SELCHANGE),"通知父窗(通过WM_COMMAND获知),选择了组合框中的一项",
    IDSTR(CBN_SELENDCANCEL),"通知父窗(通过WM_COMMAND获知),用户对组合框的选择应当被取消",
    IDSTR(CBN_SELENDOK),"通知父窗(通过WM_COMMAND获知),用户对组合框的选择是合法的",
    IDSTR(CBN_SETFOCUS),"通知父窗(通过WM_COMMAND获知),组合框获得输入焦点",

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 35
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
目前是这样的,而且文字还会被全选起来
上传的附件:
2015-11-26 21:37
0
雪    币: 4560
活跃值: (1002)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
3
控件高度只有二十咋显示下拉列表?
下拉列表也是限制在控件区域里的
2015-11-26 23:06
0
雪    币: 590
活跃值: (177)
能力值: ( LV9,RANK:680 )
在线值:
发帖
回帖
粉丝
4
@b23526正解,目测是你ComboBox高度设置问题

具体使用示例参考
http://bbs.pediy.com/showthread.php?t=108021
2015-11-27 09:06
0
游客
登录 | 注册 方可回帖
返回
//