设置CListCtrl表头图像~

	m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT );
	m_List.InsertColumn(0, _T("网址"), LVCFMT_LEFT, 100 );
	m_List.InsertColumn(1, _T("说明"), LVCFMT_LEFT, 100 );
	m_List.InsertColumn(3, _T("耗时"), LVCFMT_LEFT, 100 );

	LVCOLUMN lvColumn;
    CImageList *ImgHeaders = new CImageList;
    ImgHeaders->Create(16,16,ILC_MASK,1,1);
    ImgHeaders->Add(AfxGetApp()->LoadIcon(IDI_UP));
    ImgHeaders->Add(AfxGetApp()->LoadIcon(IDI_DOWN));
	
    m_List.SetImageList(ImgHeaders, LVSIL_SMALL);
	
    lvColumn.mask = LVCF_FMT | LVCF_IMAGE;  //mask说明此结构中哪些成员是有效的
    lvColumn.fmt = LVCFMT_LEFT | LVCFMT_IMAGE;  //列的对齐方式
    lvColumn.iImage = 0;
	m_List.SetColumn(0,&lvColumn);
	lvColumn.iImage = 1;
    m_List.SetColumn(1,&lvColumn);


上面的显示不正常

补上正确的

	m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT );
	m_List.InsertColumn(0, _T("网址"), LVCFMT_LEFT, 100 );
	m_List.InsertColumn(1, _T("说明"), LVCFMT_LEFT, 100 );
	m_List.InsertColumn(2, _T("耗时"), LVCFMT_LEFT, 100 );
	//添加ListCtrl数据
	int nRet;
	nRet = m_List.InsertItem( m_List.GetItemCount( ), _T("http://www.a3gs.com/index.asp") );
	//设置一个唯一的Item数据,否则无法排序
	m_List.SetItemData( nRet, 0 );
	m_List.SetItemText( nRet, 1, _T("天使知识授理厂") );
	m_List.SetItemText( nRet, 2, _T("100") );
	nRet = m_List.InsertItem( m_List.GetItemCount( ), _T("http://www.a3gs.com/Info_More.asp?classID=789") );
	m_List.SetItemData( nRet, 1 );
	m_List.SetItemText( nRet, 1, _T("Android") );
	m_List.SetItemText( nRet, 2, _T("20") );
	nRet = m_List.InsertItem( m_List.GetItemCount( ), _T("http://www.a3gs.com/Info_More.asp?classID=645") );
	m_List.SetItemData( nRet, 2 );
	m_List.SetItemText( nRet, 1, _T("Windows Mobile") );
	m_List.SetItemText( nRet, 2, _T("300") );
	nRet = m_List.InsertItem( m_List.GetItemCount( ), _T("http://www.a3gs.com/Info_More.asp?classID=643") );
	m_List.SetItemData( nRet, 3 );
	m_List.SetItemText( nRet, 1, _T("iPhone") );
	m_List.SetItemText( nRet, 2, _T("99") );
	nRet = m_List.InsertItem( m_List.GetItemCount( ), _T("http://www.a3gs.com/Info_More.asp?classID=644") );
	m_List.SetItemData( nRet, 4 );
	m_List.SetItemText( nRet, 1, _T("Symbian") );
	m_List.SetItemText( nRet, 2, _T("20") );
	nRet = m_List.InsertItem( m_List.GetItemCount( ), _T("http://www.a3gs.com/Info_More.asp?ClassID=799") );
	m_List.SetItemData( nRet, 5 );
	m_List.SetItemText( nRet, 1, _T("嵌入式") );
	m_List.SetItemText( nRet, 2, _T("111") );
	nRet = m_List.InsertItem( m_List.GetItemCount( ), _T("http://www.a3gs.com/About.asp") );
	m_List.SetItemData( nRet, 6 );
	m_List.SetItemText( nRet, 1, _T("关于我们") );
	m_List.SetItemText( nRet, 2, _T("222") );
	
	CImageList *ImgHeaders = new CImageList;
    ImgHeaders->Create(16,16,ILC_MASK,1,1);
    ImgHeaders->Add(AfxGetApp()->LoadIcon(IDI_UP));
    ImgHeaders->Add(AfxGetApp()->LoadIcon(IDI_DOWN));
	
	
	enum   { sizeOfBuffer = 256 };
	TCHAR  lpBuffer[sizeOfBuffer];
	HDITEM hdi;
	hdi.pszText = lpBuffer;
	hdi.cchTextMax = sizeOfBuffer;
	
	
	CHeaderCtrl *pHdCtrl = m_List.GetHeaderCtrl();
	//有空格提示已经成功了,,图片没有是因为还没有SetImageList!!!!!!!!帮你加上!!!!!!!!!!!!!!!,
    pHdCtrl->SetImageList(ImgHeaders);  
	ImgHeaders->Detach();//经验告诉我,脱离掉才能显示出图片来!
	ImgHeaders->DeleteImageList();
	//帮你补上这3句

	int count = pHdCtrl->GetItemCount();
	for (int i=0; i <  count; i++)
	{
		hdi.mask = HDI_TEXT | HDI_IMAGE;
		pHdCtrl->GetItem(i, &hdi);
		
		hdi.iImage=1;
		hdi.mask = HDI_IMAGE | HDI_FORMAT | HDI_TEXT/* | HDI_WIDTH*/;
		hdi.fmt = HDF_LEFT | HDF_IMAGE | HDF_STRING;
		pHdCtrl->SetItem( i, &hdi );
	}

猜你喜欢

转载自blog.csdn.net/popppig/article/details/8270844
今日推荐