如何控制CListCtrl每一列的最小的宽度?

解决方案 »

  1.   

    LVCOLUMN lvc;
    lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH  ;
    lvc.fmt = LVCFMT_LEFT;
    for(int i = 0;i<USER_INFO_CNT ;i++)
    {
    if(i == 0)
    {
    lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH /*| LVCF_IMAGE*/ ;
    }
    else
    {
    lvc.mask = LVCF_FMT | LVCF_TEXT | LVCF_SUBITEM | LVCF_WIDTH  ;
    }
    lvc.cx = //计算最小宽度
    lvc.pszText = "......";
    lvc.iSubItem = i;
    m_listCtrl.InsertColumn(i,&lvc);
    }
      

  2.   

    在派生类中处理LVM_SETCOLUMN消息,如果cx小于指定值,就设为这个最小值,然后调用父类的处理函数。