制作个性列表




1、添加新类,基类是ClistCtrl

class NL_ListCtrl : public CListCtrl

{...}

2、添加修改背景函数

BOOL NL_ListCtrl::OnEraseBkgnd(CDC* pDC)

{

CRect rect;

GetClientRect(rect);

pDC->FillRect(rect,&m_brush);

return true;

//return CListCtrl::OnEraseBkgnd(pDC);

//去掉这个才有效

}

3、添加成员函数

void NL_ListCtrl::PreSubclassWindow()

{

DWORD lcStyle;

lcStyle=GetStyle();

lcStyle|=LVS_REPORT|

LVS_SINGLESEL|

LVS_SHOWSELALWAYS|

LVS_OWNERDRAWFIXED; //窗口所有者进行操作 制作个性列表必须得有 发送 WM_DRAWITEM消息



lcStyle&=~LVS_EDITLABELS;

ModifyStyle(0,lcStyle);

CListCtrl::PreSubclassWindow();

}

4、重新修改虚拟函数 DrawItem(LPDRAWITEMSTRUCT lpDIS),而不是 OnDrawItem(...)

OnDrawItem(...)是消息响应函数,而不是处理函数

virtual void DrawItem(LPDRAWITEMSTRUCT lpDIS);

{

//在这里进行修改显示特性,主要用的函数有以下

//GetHeaderCtrl

//GetItemCount;

//GetColumnWidth;

//SetColumnWidth

//GetItemRect

//GetItem

//GetItemText

lpDIS->itemID;//当前项目号

lpDIS->rcItem;//当前项目的区域



//是否有选择

BOOL bFocus=(GetFocus()==this);

BOOL bSelected=(lvi.state&LVIS_SELECTED &&

(GetStyle()&LVS_SHOWSELALWAYS));

bSelected=bSelected||(lvi.state&LVIS_DROPHILITED);



}



5、如果修改头的外观请使用CHeaderCtrl,操作类似与上面







CButton

CCHeckListBox

CComboBox

CHeaderCtrl

CListBox

CMenu

CStatusBar

CStatusBarCtrl

CTabCtrl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值