Listview控件没有列标题

时间:2017-08-15 02:23:23

标签: c++ mfc

我正在开发 C ++ MFC 应用程序。我有列表视图控件

  1. 我在m_listCtrl类下定义了控制变量(CListCtrl)(     资源视图添加变量)
  2. 我按以下代码段添加列
  3. Output

    没有列标题和列。任何帮助表示赞赏。

    static void AddData(CListCtrl &ctrl, int row, int col, const char *str)
    {
        LVITEM lv;
        lv.iItem = row;
        lv.iSubItem = col;
        lv.pszText = (LPSTR)str;
        lv.mask = LVIF_TEXT;
        if (col == 0)
            ctrl.InsertItem(&lv);
        else
            ctrl.SetItem(&lv);
    }
    
    
    BOOL CmfcTestDlg::OnInitDialog()
    {
        //.. default code in MFC for dialog here        
        m_listCtrl.InsertColumn(0, "Page");
        m_listCtrl.SetColumnWidth(0, 60);
    
        m_listCtrl.InsertColumn(1, "Last Modified");
        m_listCtrl.SetColumnWidth(1, 80);
    
        m_listCtrl.InsertColumn(2, "Prioirty");
        m_listCtrl.SetColumnWidth(2, 50);
    
        m_listCtrl.SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT);
    
        AddData(m_listCtrl, 0, 0, "First");
        AddData(m_listCtrl, 0, 1, "Jan 2011");
        AddData(m_listCtrl, 0, 2, "Medium");
    
        AddData(m_listCtrl, 1, 0, "Second");
        AddData(m_listCtrl, 1, 1, "Feb 2011");
        AddData(m_listCtrl, 1, 2, "High");
    
        return TRUE;  // return TRUE  unless you set the focus to a control
    }
    

1 个答案:

答案 0 :(得分:2)

因为你有一个对话框模板,你必须在那里设置标题的样式。

单击资源编辑器中的控件。确保选择了报告样式(部分外观,属性查看)。

在部分外观中,将无列标题设置为

如果您使用自己的代码创建列表视图,请不要使用样式 LVS_NOCOLUMNHEADER

列标题的样式定义为否定。因此,如果要抑制标题,请设置样式。大多数其他样式都定义为positiv,您需要它们以便设置样式。有时令人困惑。