【发布时间】:2016-06-06 13:52:39
【问题描述】:
在listctrl 中,如果单元格中的文本比单元格的宽度长,则只有部分文本可见。当我将鼠标光标放在所述单元格的顶部时,将出现一个小的弹出窗口以尝试显示全文(请参见下面的屏幕截图)。 我想知道是否有办法抑制/禁用此行为。
【问题讨论】:
标签: wxpython wxwidgets listctrl
在listctrl 中,如果单元格中的文本比单元格的宽度长,则只有部分文本可见。当我将鼠标光标放在所述单元格的顶部时,将出现一个小的弹出窗口以尝试显示全文(请参见下面的屏幕截图)。 我想知道是否有办法抑制/禁用此行为。
【问题讨论】:
标签: wxpython wxwidgets listctrl
当使用 LVS_EX_LABELTIP 扩展样式时,本机控件会显示此工具提示,恕我直言,非常有用,因为如果不调整整个列的大小,就不可能看到过长单元格的内容。因此,默认情况下它是启用的,并且由于它是非常特定于 MSW 的,wxWidgets API 没有提供禁用它的方法。
如果您真的非常需要这样做,您可以随时使用特定于 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
【讨论】:
DataViewCtrl 的工具提示,那么我这边肯定会赏金 :)
DataViewCtrl 用于 MSW 的工具提示。
您可以改用DataViewListCtrl,它缺少这个有用的功能(当线条为椭圆时的工具文本)。据我所知,它不是ListCtrl 的插件,因此使用它的语法会有所不同。
【讨论】: