我用CListCtrl通过查询显示了SQL里面的数据 但是显示的时候列宽不够 记录内容没有完全直观的显示 怎么调整显示的列宽啊 我用vc做的界面

解决方案 »

  1.   

    我觉得这种问题还是查下MSDN,比较好!
      

  2.   

    在插入列的时候指定列宽.InsertColumn(i, pTmp->lpszColumnHeading, pTmp->nFormat, pTmp->nWidth);
      

  3.   

    我一般在插入列的时候就指定了宽度:m_listRecv.InsertColumn(1,"登录名",50);//50便我指定的宽度。当然,你也可以根据你的情况调整宽度,比如:
       CRect rect;
      m_listRecv.GetWindowRect(&rect);
      int Width=rect.right - rect.left;
            m_listRecv.InsertColumn(1,"登录名",Width/3);//这样可以根据控件的宽度自己调整列宽
      

  4.   

    看MSDN上有:
    int nWidth = pmyListCtrl->GetColumnWidth(0);
    pmyListCtrl->SetColumnWidth(0, 2*nWidth);
      

  5.   

    LZ,经本人验证:
      int nWidth = m_listOperator.GetColumnWidth(0);
      m_listOperator.SetColumnWidth(0, 2*nWidth);
    能修改CListCtrl对象的列宽度。
      

  6.   

    如果我用SetColumnWidth设置好了列宽 然后插入记录 这条记录的这列长度大于这个列宽 那么不是还是没有完全将这条记录直接显示出来吗
      

  7.   

    本来想说用SetColumnWidth(),原来是要自动调整,哈哈,献丑啦
      

  8.   

    GetTextExtent GetColumnWidth判断 SetColumnWidth
      

  9.   

    在创建列的时候把列宽设置大一点就好了
    CListCtrl::InsertColumnint InsertColumn(int nCol,const LVCOLUMN* pColumn)
    int InsertColumn(int nCol,
                     LPCTSTR lpszColumnHeading,
                     int nFormat = LVCFMT_LEFT,
                     int nWidth = -1,
                     int nSubItem = -1
                    )返回值:如果成功,则返回新建列的索引值,否则为-1。参数: nCol 新建列的索引值。  
    pColumn 包含新建列属性的LVCOLUMN结构的地址。  
    lpszcolumnHeading 包含列标题的字符串的地址。  
    nFormat 指定列对齐方式的整数。它为下列值之一:LVCFMT_LEFT,LVCFMT_RIGHT或LVCFMT_CENTER。  
    nWidth 以像素为单位的列宽。如果该参数为-1,那么没有设置列宽。  
    nSubItem 与列相关联的子项的索引。如果该参数为-1,那么没有子项与列相关。  
    width写大些