ListView listCtrl 不能显示和不能正确添加行数据以及列表题不能显示问题

来源:互联网 发布:网游之王者荣耀知白 编辑:程序博客网 时间:2024/05/18 16:15

前段时间在MFC下的MDI模式下用CListView视图类显示数据的时候不能正确的显示自己设定的样式,折腾半天才找到了原因,其实很简单。由于好久没有用MFC了,有点生疏了。呵呵,以下简单说明以下,就当作为一个记录提醒自己吧。

 

我目标:

   设置标题(多列)

   显示栅格线

   可以多行显示

   一次显示一行

不能正确显示我设定的样式,不能正确的添加多列的原因可能是设定的 Mask不正确,至少我是这样。

应该正确设置的Mask为 LVS_REPORT,如果这里不设置默认的是其他格式的。问题就这么简单。

 

以下是部分代码(CListView下的代码):

 

 CListCtrl* lstCtrl = (CListCtrl*)&(this->GetListCtrl());


        DWORD dwExStyle = lstCtrl->GetExtendedStyle();


        dwExStyle |= LVS_EX_GRIDLINES;
        dwExStyle |= LVS_EX_MULTIWORKAREAS;
 
        lstCtrl->ModifyStyle(0, LVS_REPORT);
        lstCtrl->SetExtendedStyle(dwExStyle|LVS_EX_FULLROWSELECT|LVS_EX_INFOTIP );


        int iColumnOrder = 0;
        for(.... ) {
            LVCOLUMNW columnInfo;
            columnInfo.mask =   LVS_REPORT|LVCF_TEXT|LVCF_WIDTH;
            columnInfo.pszText = “列标题字符串”;
            columnInfo.fmt = LVCFMT_LEFT ;
            columnInfo.cchTextMax = “列标题字符串长度”;
            columnInfo.cx = “列标题字符串长度”* 18;
            lstCtrl->InsertColumn(iColumnOrder, “列标题字符串”);
            iColumnOrder++;
        }

原创粉丝点击