我想改变列表控件的colomn和滚动条的颜色啊,
找了许久好像没有找到啊
找了许久好像没有找到啊
解决方案 »
- 急求:如果在一个vc程序中通过(CInternetSession)实现两个用户同时登录并访问http服务器.
- 如何使 Internet Explorer 自动对 POST 窗体数据
- 如何同时去掉多个子窗口的指针??
- 请教VC5.0 CEdit控件 在WIN2000操作系统下的一个问题
- 求Dbgrid控件详细用法的资料?
- 求助:有什么函数可以最小化到托盘的?
- 怎样搞CDocument类,使文本编辑器新建一个文件时自动生成初始文字??
- 怎样优化自己的程序?
- When maxmize a dialog, It corvered the taskbar and fulled the screen, How to make it displying as a normal dialog
- 请教VC调用Word
- 请各位大侠指教,关于树形控件的问题
- 在VC中如何用自定义控件(custom control)?
{
NMLVCUSTOMDRAW* pLVCD = reinterpret_cast<NMLVCUSTOMDRAW*>(pNMHDR);
*pResult = CDRF_DODEFAULT;
if (pLVCD->nmcd.dwDrawStage == CDDS_PREPAINT)
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
else if (pLVCD->nmcd.dwDrawStage == CDDS_ITEMPREPAINT)
{
// This is the notification message for an item. We'll request
// notifications before each subitem's prepaint stage. *pResult = CDRF_NOTIFYSUBITEMDRAW;
}
else if (pLVCD->nmcd.dwDrawStage == (CDDS_ITEMPREPAINT | CDDS_SUBITEM))
{
int nItem = static_cast<int> (pLVCD->nmcd.dwItemSpec);
int nSubItem = pLVCD->iSubItem;
POSITION npos = m_msglist1.GetFirstSelectedItemPosition();
if(nItem != m_msglist1.GetNextSelectedItem(npos)) //如果被选中使用默认输出
{ //所画项不是选中项
CDC* pDC = CDC::FromHandle(pLVCD->nmcd.hdc);
CString str;
CRect rect;
UINT nFormat = DT_VCENTER | DT_SINGLELINE;
m_msglist1.GetSubItemRect(nItem, nSubItem, LVIR_BOUNDS, rect);
rect.left += 3; //调整自绘输出位置
str = m_msglist1.GetItemText(nItem,nSubItem);
//根据用户数据判断显示何种颜色
/* if(m_msglist1.GetItemData(nItem) ==1)
{
pDC->FillSolidRect(&rect, RGB(255,0,0));
pDC->SetTextColor(RGB(0,0,255));
pDC->SetBkColor(RGB(255,0,0));
}
else if(m_msglist1.GetItemData(nItem) ==2)
{
pDC->FillSolidRect(&rect, RGB(0,255,0));
pDC->SetTextColor(RGB(255,0,255));
pDC->SetBkColor(RGB(0,255,0));
}
else if(m_msglist1.GetItemData(nItem) ==3)
{
pDC->FillSolidRect(&rect, RGB(255,0,255));
pDC->SetTextColor(RGB(0,255,255));
pDC->SetBkColor(RGB(255,0,255));
}
else if(m_msglist1.GetItemData(nItem) ==4)
{
pDC->FillSolidRect(&rect, RGB(255,255,88));
pDC->SetTextColor(RGB(88,88,88));
pDC->SetBkColor(RGB(255,255,88));
}
*/// else
{
*pResult = CDRF_DODEFAULT;
return;
}// CSize msize;
// msize = pDC->GetTextExtent(str);
// pDC->DrawText(str, &rect, nFormat); //自绘输出
// *pResult = CDRF_SKIPDEFAULT; // We've painted everything.
}
else
*pResult = CDRF_DODEFAULT;
}
}
从
if (pLVCD->nmcd.dwDrawStage == CDDS_PREPAINT)
{
*pResult = CDRF_NOTIFYITEMDRAW;
}
退出了
你试试:void OnCustomDrawList(NMHDR *pNMHDR, LRESULT *pResult)
{
NMLVCUSTOMDRAW *pLVCD = reinterpret_cast<NMLVCUSTOMDRAW *>(pNMHDR); switch(pLVCD->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYITEMDRAW;
break;
case CDDS_ITEMPREPAINT:
COLORREF clrBkgnd;
if(pLVCD->nmcd.dwItemSpec %2)
clrBkgnd = RGB(255, 255, 255);
else
clrBkgnd = RGB(220, 220, 220);
pLVCD->clrTextBk = clrBkgnd;
*pResult = CDRF_DODEFAULT;
break;
default:
*pResult = CDRF_DODEFAULT;
}
}