情况是这样的:一个MFC扩展DLL工程,添加了一个CFormView类,里创建了一个CFrameWndEx,CFrameWndEx里又有两个子View视图,用分屏器CSplitterWnd连接,每个子View视图里都有一个CListCtrl。CFormView里可以获取到两个子View视图里的list的指针,如果我在CFormView里用SetColumnWidth(nCol, LVSCW_AUTOSIZE_USEHEADER)来设置list的列宽,最后一列的宽度始终超过正常宽度很大,但我在子View里用SetColumnWidth(nCol, LVSCW_AUTOSIZE_USEHEADER)来设置列宽的话,最后一列的宽度就是正常的,为什么?

解决方案 »

  1.   

    估计是调用SetColumnWidth的时机不对,你分别是在什么时候调用的?
      

  2.   

    在最底层的View是OnInitialUpdate里调用的,最后一列长度不正确在最顶层的子View里也是OnInitialUpdate里调用的,最后一列的长度就是正确的。
      

  3.   

    不对个头
    LVSCW_AUTOSIZE_USEHEADER
    Automatically sizes the column to fit the header text. If you use this value with the last column, its width is set to fill the remaining width of the list-view control.