注册 登录
编程论坛 C++教室

获取combobox 的索引值时,索引值重复出现现象。

man94ht 发布于 2017-07-23 15:45, 2520 次点击
下列代码简写,只写主体:
void init()//初始化
{
    ...
     drop_down_list = CreateWindow(_T("combobox"), NULL, WS_CHILD | WS_VISIBLE | WS_VSCROLL | CBS_DROPDOWNLIST | CBS_HASSTRINGS,
       190, 20, 80, 100, hWnd, (HMENU)DROP_DOWN_LIST, hInstance, NULL);

       SendMessage(drop_down_list, CB_ADDSTRING, 0, (LPARAM)_T("圆"));
       SendMessage(drop_down_list, CB_ADDSTRING, 0, (LPARAM)_T("椭圆"));
        ....
}

LRESULT CALLBACK WndProc(....)
{
    ...
    case DROP_DOWN_LIST:
    {
        //获取点击项的索引值
        int idx = SendMessage(drop_down_list, CB_GETCURSEL, 0, 0);
    AllocConsole();
    freopen("conout$", "w", stdout);
    cout << idx << endl;
        break;
    }
}
结果:
只有本站会员才能查看附件,请 登录

问题:为什么点击时会调用这个消息好几次。导致重复刷idx 5次。
4 回复
#2
rjsp2017-07-24 10:21
DROP_DOWN_LIST 是什么东西?
#3
man94ht2017-07-24 15:49
回复 楼主 man94ht
在创建下拉列表句柄的时候有的那个东西。     我用错了吗?那该怎么做
#4
yangfrancis2017-07-24 17:58
怎么会在DROP_DOWN_LIST下面读索引呢?一般来说是点中某个按钮的时候读取啊。
#5
man94ht2017-07-26 18:01
回复 4楼 yangfrancis
那个按钮的值我不知道。。。刚写就靠感觉写。东拼西凑的。    能告诉我点击的那个值是怎么弄吗?我点击DROP_DOWN_LIST是有问题的。就是重复回调好几次。我也不知道谁回调的它。
1