Это кажется очевидным решением, которое не должно выполнять больше работы, чем необходимо:
def shuffled(gen):
ls = list(gen)
random.shuffle(ls)
return ls
Поскольку сборка из примитивов stdlib настолько проста, я не уверен, что имеет смысл включать это как отдельный примитив.
Мог бы быть лучший путь (мой MFC немного ржав), но кажется, что необходимо смочь звонить CComboBox::GetLBText()
, передача его текущее использование выбора CComboBox::GetCurSel()
.
Простое GetWindowText
работы, также.
Править: Поскольку ajryan указывает, GetWindowText
на самом деле не работает в a CBN_SELCHANGE
обработчик, потому что новый выбор вступил в силу, но текст окна не был обновлен с текстом нового выбора когда WM_COMMAND
отправляется.
Используйте GetLBText, передающий в индексе и объекте CString.
править: слишком медленный!
CB_GETCURSEL
возвратите целочисленный индекс CB_GETLBTEXT
возвраты представляют в виде строки в CB_GETCURSEL