2017-08-15 21 views
0

我正在开发C++ MFC应用程序。在那里我有列表视图控制Listview控件没有列标题

  1. 我下CListCtrl类( 资源视图中添加变量)
  2. 我添加列如以下代码段

Output

否列标题和列限定的控制变量(m_listCtrl)。任何帮助表示赞赏。

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

我假设控件具有LVS_REPORT风格? – Steve

+0

@Steve我没有添加任何类型的样式 – venaizu

回答

2

因为你有一个对话框模板,你必须设置样式为标题出现。

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

在外观部分,设置没有列标题没有

如果您通过自己的代码列表视图中,不使用的样式LVS_NOCOLUMNHEADER

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