请问我怎样才能做一个彩色背景的listcontrl列表框? 我是编程菜鸟请问我在VC里怎样才能做一个彩色背景的listcontrl列表框?哪位高手知道的请告诉我谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我做过,这样实现的:效果参见:http://pillar.vip.sina/com/pinger.jpg1)继承CListCtrl类class CMyLiistCtrl public CListCtrl{ ....}2)在对话框类中,针对CListCtrl元素添加成员变量 CMyListCtrl m_wndMyListCtrl;3)在对话框的DoDataExchange函数中,添加项目:DDX_Control(pDX, IDC_LIST_CONTROL, m_wndMyListCtrl);4)CMyListCtrl类的部分实现代码如下:BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl) //{{AFX_MSG_MAP(CResultWnd) ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw) //}}AFX_MSG_MAPEND_MESSAGE_MAP()void CMyListCtrl::PreSubclassWindow() { // TODO: Add your specialized code here and/or call the base class ModifyStyle(LVS_TYPEMASK, LVS_REPORT); DWORD dwNewStyle = GetExtendedStyle(); dwNewStyle |= LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT; SetExtendedStyle(dwNewStyle); m_ImageList.Create(IDB_IMAGE_LIST, 16, 16, 0xffffff); SetImageList(&m_ImageList, LVSIL_SMALL); CRect rect; GetClientRect(&rect); InsertColumn(IP_ADDRESS_COLUMN, _T("Destination IP Address"), LVCFMT_CENTER, IP_ADDRESS_COLUMN_WIDTH); InsertColumn(AVERAGE_TIME_COLUMN, _T("Average Echo Time(ms)"), LVCFMT_CENTER, AVERAGE_TIME_COLUMN_WIDTH); InsertColumn(ECHO_PERCENT_COLUMN, _T("Good Echo Percent"), LVCFMT_CENTER, ECHO_PERCENT_COLUMN_WIDTH); InsertColumn(HOST_NAME_COLUMN, _T("Resolved Host Name"), LVCFMT_CENTER, rect.Width() - IP_ADDRESS_COLUMN_WIDTH - AVERAGE_TIME_COLUMN_WIDTH - ECHO_PERCENT_COLUMN_WIDTH); m_hAccelerator = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDA_RESULT_WND)); CListCtrl::PreSubclassWindow();}void CMyListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult){ LPNMLVCUSTOMDRAW lpCustomDraw = (LPNMLVCUSTOMDRAW)pNMHDR; switch (lpCustomDraw->nmcd.dwDrawStage) { case CDDS_PREPAINT: *pResult = CDRF_NOTIFYSUBITEMDRAW; break; case CDDS_ITEMPREPAINT: { if(lpCustomDraw->nmcd.dwItemSpec & 1) { lpCustomDraw->clrTextBk = RGB(239, 255, 255); } else { lpCustomDraw->clrTextBk = RGB(255, 239, 255); } *pResult = CDRF_NEWFONT; break; } default: *pResult = CDRF_DODEFAULT; }} 上面的连接有误,正确的是:http://pillar.vip.sina.com/pinger.jpg 大哥谢谢你不过我很菜看不懂你说的你能帮我做一个吗?只要一个有颜色的listcontrl框就行了我有急用,能尽快做好能发给我吗,我把我的分数都给你我的信箱是[email protected]感激不尽 SendMessage无法达到预期效果,求教。 ADOX 创建数据库错误 用VC++怎么限制打开文件的个数? vc7 mfc 的多线程问题 这种列表框的搜索如何实现? 急急急!!!谁有《MFC Windows 程序设计》电子版? 各位老大,请问 mcse证书有没有用? 求助:动态链接库编译错误(可能跟共享内存段过大有关) 怎样在VB中用API直接打印? 北京现在哪里有<<深入浅出MFC>>? CListCtrl要设置成选中时为多列选中,而不是光第一列被选中,怎么搞? 今天突然发现我所有的目录都是只读属性
class CMyLiistCtrl public CListCtrl
{
....
}2)在对话框类中,针对CListCtrl元素添加成员变量 CMyListCtrl m_wndMyListCtrl;3)在对话框的DoDataExchange函数中,添加项目:
DDX_Control(pDX, IDC_LIST_CONTROL, m_wndMyListCtrl);4)CMyListCtrl类的部分实现代码如下:BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl)
//{{AFX_MSG_MAP(CResultWnd)
ON_NOTIFY_REFLECT(NM_CUSTOMDRAW, OnCustomDraw)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()void CMyListCtrl::PreSubclassWindow()
{
// TODO: Add your specialized code here and/or call the base class
ModifyStyle(LVS_TYPEMASK, LVS_REPORT); DWORD dwNewStyle = GetExtendedStyle();
dwNewStyle |= LVS_EX_HEADERDRAGDROP | LVS_EX_FULLROWSELECT;
SetExtendedStyle(dwNewStyle); m_ImageList.Create(IDB_IMAGE_LIST, 16, 16, 0xffffff);
SetImageList(&m_ImageList, LVSIL_SMALL); CRect rect;
GetClientRect(&rect);
InsertColumn(IP_ADDRESS_COLUMN, _T("Destination IP Address"), LVCFMT_CENTER, IP_ADDRESS_COLUMN_WIDTH);
InsertColumn(AVERAGE_TIME_COLUMN, _T("Average Echo Time(ms)"), LVCFMT_CENTER, AVERAGE_TIME_COLUMN_WIDTH);
InsertColumn(ECHO_PERCENT_COLUMN, _T("Good Echo Percent"), LVCFMT_CENTER, ECHO_PERCENT_COLUMN_WIDTH);
InsertColumn(HOST_NAME_COLUMN, _T("Resolved Host Name"), LVCFMT_CENTER, rect.Width() - IP_ADDRESS_COLUMN_WIDTH - AVERAGE_TIME_COLUMN_WIDTH - ECHO_PERCENT_COLUMN_WIDTH); m_hAccelerator = LoadAccelerators(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDA_RESULT_WND)); CListCtrl::PreSubclassWindow();
}void CMyListCtrl::OnCustomDraw(NMHDR* pNMHDR, LRESULT* pResult)
{
LPNMLVCUSTOMDRAW lpCustomDraw = (LPNMLVCUSTOMDRAW)pNMHDR;
switch (lpCustomDraw->nmcd.dwDrawStage)
{
case CDDS_PREPAINT:
*pResult = CDRF_NOTIFYSUBITEMDRAW;
break; case CDDS_ITEMPREPAINT:
{
if(lpCustomDraw->nmcd.dwItemSpec & 1)
{
lpCustomDraw->clrTextBk = RGB(239, 255, 255);
}
else
{
lpCustomDraw->clrTextBk = RGB(255, 239, 255);
}
*pResult = CDRF_NEWFONT;
break;
} default:
*pResult = CDRF_DODEFAULT;
}
}
http://pillar.vip.sina.com/pinger.jpg
不过我很菜看不懂你说的
你能帮我做一个吗?
只要一个有颜色的listcontrl框就行了
我有急用,能尽快做好能发给我吗,我把我的分数都给你
我的信箱是[email protected]
感激不尽