Получить выбранный элемент в выпадающем меню Win32 - PullRequest
0 голосов
/ 10 октября 2018

Как получить выбранное значение текущего раскрывающегося списка каждый раз, когда происходят изменения в раскрывающемся списке?

case WM_COMMAND:

        break;

1 Ответ

0 голосов
/ 10 октября 2018

A поле со списком уведомляет своего родителя об изменениях в выборе, отправляя сообщение CBN_SELCHANGE .Вы можете получить текущий выбранный индекс предмета, отправив сообщение CB_GETCURSEL .Текст элемента можно получить, отправив сообщение CB_GETLBTEXT :

case WM_COMMAND:
    switch(HIWORD(wParam))
    {
        case CBN_SELCHANGE:
        {
            HWND const control{ (HWND)lParam };
            int const index{ ::SendMessage(control, CB_GETCURSEL, nullptr, nullptr) };
            if (index == CB_ERR)
            {
                // Handle error
                return 0;
            }
            // [optional] Retrieve text of selected item
            int const len{ (int)::SendMessage(control, CB_GETLBTEXTLEN, (WPARAM)index, nullptr) };
            if (len == CB_ERR)
            {
                // Handle error
                return 0;
            }
            std::vector<wchar_t> buffer(len + 1);
            ::SendMessageW(control, CB_GETLBTEXT, (WPARAM)index, (LPARAM)buffer.data());

            return 0;
        }
        case default:
            break;
    }
    break;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...