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,列表框基类是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测试