как избавиться от выделения текста в компоненте wxwidget combobox? - PullRequest
0 голосов
/ 25 февраля 2011

В моей программе я хочу, чтобы пользователь мог выбирать между некоторыми опциями, поэтому я использовал компонент wxChoice. К сожалению, после взаимодействия с пользователем (нажатием кнопки) я должен показать пользовательский текст (не из моего предопределенного списка). Все работает нормально, если я использую элемент управления wxCombobox, но недостатком этого подхода является то, что каждый раз, когда пользователь выбирает элемент из списка, выделенный текст подсвечивается. Это раздражает. Я хочу, чтобы компонент был только для чтения. Как этого добиться?

Код для визуализации моего вопроса:

wxComboBox* viewAngle = wxDynamicCast( owner->FindWindow 
    ( ID_CHOICE_3D_VIEWANGLE ), wxComboBox );
viewAngle->SetSelection( wxNOT_FOUND );
viewAngle->SetValue(_("Custom View"));

EDIT:

Этот элемент управления используется для настройки вида камеры в приложении для просмотра 3D-объектов. Возможны следующие варианты: сверху, слева, справа и т. Д. Также возможно, что пользователь перемещает 3D-объект с помощью мыши. В этом случае я хочу, чтобы мой выпадающий список отображал строку «пользовательский вид». Однако «пользовательский вид» не должен быть частью списка со списком, потому что выбор этой опции ничего не делает. Реализация wxWidgets по умолчанию всегда помечает выделенный текст. Что может вводить пользователя в заблуждение, потому что он может подумать, что он может ввести любой текст.

1 Ответ

0 голосов
/ 14 января 2012

ИМХО, пользовательский текст должен быть добавлен в элемент управления wxComboBox, программа может просто игнорировать его, когда пользователь выбирает эту опцию.

Кроме того, можно использовать стиль wxCB_READONLY wxComboBox, чтобы избежать подсветки.

...