MFC,ListBox使用 InsertColumn添加列,在列表框中却无论如何都不显示,很是郁闷,求解,正解追加高分。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC,ListBox使用 InsertColumn添加列,在列表框中却无论如何都不显示,很是郁闷,求解,正解追加高分。相关的知识,希望对你有一定的参考价值。

初始化列表框的函数如下:
void CEnterFocusDlg::InitListBox()

//设置列表控件的报表显示方式
m_pList->ModifyStyle(LVS_ICON|LVS_SMALLICON|LVS_LIST,LVS_REPORT);
CString str="";
LVCOLUMN lvColumn;
//在列表控件中插入列
for (int i=0;i<3;i++)

str.Format("Column %d",i);
lvColumn.mask=LVCF_TEXT|LVCF_FMT|LVCF_WIDTH;
lvColumn.fmt=LVCFMT_LEFT;
lvColumn.cx=50;
lvColumn.pszText=str.GetBuffer(str.GetLength());
//插入列表列
m_pList->InsertColumn(i,&lvColumn);


在OnInitDialog函数里调用了上述函数,调试没问题,上述代码都执行了。
但是打开程序,列表框里却无无论如何都是空白,什么都不显示。
我在想是不是跟控件属性设置有关

应该使用列表控件CListCtrl,而不是列表框。追问

列表控件?不就一个列表框吗?

追答

列表控件和列表框是两个不同的控件,列表控件基类是CListCtrl,列表框基类是CListBox。你要确保m_pList对象所对应的类是CListCtrl。如果m_pList对象所对应的类是CListCtrl,那么你在初始化的时候应该填写列表头信息,如果还不行,可以用另外一种方法插入列。

参考技术A 注意CListBox与CListCtrl的区别。 参考技术B 控件属性-》外观-》view 默认是icon 改成report就可以了。。望采纳

在 MFC 中更改组合框的项目背景颜色?

【中文标题】在 MFC 中更改组合框的项目背景颜色?【英文标题】:Change the item background color of a combobox in MFC? 【发布时间】:2012-03-29 20:59:47 【问题描述】:

我想在使用 AddString 方法时更改组合框项目的背景颜色。

【问题讨论】:

【参考方案1】:

从 CComboBox 派生一个类并覆盖 OnCtlColor。 OnCtlColor中nCtlColor参数为CTLCOLOR_LISTBOX时,调用DC::SetBkColor方法。

可能是这样的:

HBRUSH CMyComboBox::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)

    if (nCtlColor == CTLCOLOR_LISTBOX)
        pDC->SetBkColor(RGB(255, 0, 0));

    return CComboBox::OnCtlColor(pDC, pWnd, nCtlColor);

灵感来自here 和here。

【讨论】:

这也适用于 CComboBoxEx 吗?因为我试过了,好像不行……

以上是关于MFC,ListBox使用 InsertColumn添加列,在列表框中却无论如何都不显示,很是郁闷,求解,正解追加高分。的主要内容,如果未能解决你的问题,请参考以下文章

dskinlite(uieasy mfc界面库)使用记录4:listbox测试

关于MFC里的listBox

MFC中ListBox如何实时显示要输入的数据?

MFC (C++):如何按设计设置 ListBox 的宽度?

猎豹MFC--下拉框ComboBox 列表框ListBox

MFC 怎么清空listbox内的全部内容?