wxpython: подавить/отключить всплывающее окно при наведении с помощью listctrl

В listctrl, если текст в ячейке длиннее ширины ячейки, будет видна только часть текста. Когда я помещаю курсор мыши поверх указанной ячейки, появляется небольшое всплывающее окно в попытке отобразить полный текст (см. скриншоты ниже). Интересно, есть ли способ подавить/отключить это поведение.

введите здесь описание изображения введите здесь описание изображения


person Alex    schedule 06.06.2016    source источник


Ответы (2)


Эта всплывающая подсказка отображается встроенным элементом управления при использовании расширенного стиля LVS_EX_LABELTIP и, ИМХО, очень полезна, поскольку без нее невозможно увидеть содержимое слишком длинной ячейки, не изменяя размер всего столбца. Из-за этого он включен по умолчанию, и, поскольку он очень специфичен для MSW, API wxWidgets не позволяет его отключить.

Если вам действительно нужно это сделать, вы всегда можете использовать код, специфичный для MSW, и сделать что-то вроде (предупреждение: непроверенный код):

#ifdef __WXMSW__
    HWND hwndList = (HWND)listctrl->GetHandle(); 
    LPARAM style = ::SendMessage(hwndList, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0);
    ::SendMessage(hwndList, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, style & ~LVS_EX_LABELTIP);
#endif
person VZ.    schedule 07.06.2016
comment
Если вы можете показать способ включить всплывающую подсказку для DataViewCtrl, я обязательно получу вознаграждение :) - person nepix32; 07.06.2016
comment
@ nepix32, вы говорите о MSW или GTK/Cocoa? - person Igor; 07.06.2016
comment
Извините за отсутствие конкретики: я имею в виду всплывающую подсказку для DataViewCtrl для MSW. - person nepix32; 07.06.2016
comment
Нет, такие всплывающие подсказки показывает только родной элемент управления, было бы неплохо иметь их для wxDVC, но нам нужно было бы реализовать их самим. Это, безусловно, выполнимо, но в равной степени это еще не сделано. - person VZ.; 07.06.2016
comment
@ nepix32 было бы здорово иметь контроль. На данный момент есть несколько советов, как реализовать что-то в производном классе здесь: rel="nofollow noreferrer">forums.wxwidgets.org/, но также необходимы некоторые дополнения для конкретной платформы. Если вы хотите продолжить обсуждение, я предлагаю вам начать новый вопрос. - person iwbnwif; 08.06.2016

Вместо этого вы можете использовать DataViewListCtrl, в котором отсутствует эта полезная функция (ToolText, когда строка имеет размер эллипса). Насколько я знаю, это не дроппин для ListCtrl, поэтому синтаксис для его использования будет другим.

person nepix32    schedule 06.06.2016