C++ 虚拟CListCtrl自动调整大小
我想自动调整虚拟ClistCtrl LVS_OWNERDATA标志的列大小 我在一些论坛上发现虚拟列表不能使用LVSCW_AUTOSIZE选项。有些人建议改为实现一个算法 但一旦加载了我的ClistCtrl而没有任何调整大小选项,双击标题分隔符即可正确调整可见列的大小 那么,我如何执行HDN_DIVIDERDBLCLICKW调用的函数呢?从中,您应该能够自动调整列的大小,如下所示:C++ 虚拟CListCtrl自动调整大小,c++,visual-studio,mfc,autosize,clistctrl,C++,Visual Studio,Mfc,Autosize,Clistctrl,我想自动调整虚拟ClistCtrl LVS_OWNERDATA标志的列大小 我在一些论坛上发现虚拟列表不能使用LVSCW_AUTOSIZE选项。有些人建议改为实现一个算法 但一旦加载了我的ClistCtrl而没有任何调整大小选项,双击标题分隔符即可正确调整可见列的大小 那么,我如何执行HDN_DIVIDERDBLCLICKW调用的函数呢?从中,您应该能够自动调整列的大小,如下所示: pListCtrl->SetColumnWidth(i, LVSCW_AUTOSIZE); int nCol
pListCtrl->SetColumnWidth(i, LVSCW_AUTOSIZE);
int nColumnWidth = pListCtrl->GetColumnWidth(i);
pListCtrl->SetColumnWidth(i, LVSCW_AUTOSIZE_USEHEADER);
int nHeaderWidth = pListCtrl->GetColumnWidth(i);
pListCtrl->SetColumnWidth(i, max(nColumnWidth, nHeaderWidth));
您可能需要处理以向虚拟列表控件提供必要的数据,但是…Clements建议的自动大小调整适用于普通列表控件,但不适用于虚拟控件,因为控件不知道任何列数据。您必须自己提供数据列宽。完全正确!自动调整大小不适用于虚拟列表。但是双击标题分隔符就可以完成任务,即使在虚拟列表中也是如此。因此,有一个函数知道列数据的大小,甚至知道虚拟列表的大小。我的问题是关于这个函数的。Autosize不适用于虚拟列表。但是,双击标题分隔符就可以完成任务,即使是使用虚拟列表也是如此。然后,在某个地方存在一个类似autosize的函数,它可以与虚拟列表一起工作。我的问题是关于这个函数。