MFC中对CListCtrl的使用总结

---------------------------------------------------------------------------------------------
|对话框中控件的操作|
---------------------------------------------------------------------------------------------
1,//给List表格增加表格线


//获取原风格属性
DWORD dwStyle = m_LTPlist.GetExtendedStyle();
//添加CheckBox、整行选中、表格线属性
dwStyle |=   LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES;
//设置新属性到控件
m_LTPlist.SetExtendedStyle(dwStyle);


2, //怎么在List表中添加表头
//在.h文件中声明
CListCtrl m_lstSor;
//在.cpp文件中实现如下就是给表添加表头
m_lstSor.InsertColumn( 0, "编号",LVCFMT_CENTER,100 );//插入列
m_lstSor.InsertColumn( 1,"业务员",LVCFMT_CENTER,100 );
m_lstSor.InsertColumn( 2, "调度日期",LVCFMT_CENTER,100 );


3,//怎么在List表中添加表参数


添加控件的列
         CListCtrl::InsertColumn(从0~N,"字段名",LVCFMT_CENTER风格,大小)
     3.4 添加数据项
         CListCtrl::InsertItem(从0~N第几行数据,"数据名",图标)
     3.5 设置列文本
         CListCtrl::SetItemText(在第几行插入数据从0~N,从0~N,”数据“)


m_lstSor.InsertItem(0,"文件",1);
m_lstSor.SetItemText(0,1,"123字节");


//m_listsr.DeleteAllItems()清除CListCtrl中的所在数据
//int nItem = -1;
nItem = m_lst_stowagelist.GetSelectionMark();//获取选中行行号


---------------------------------------------------------------------------------------------
|ListCtrl控件数据刷新问题|
---------------------------------------------------------------------------------------------
UpdateWindow();//当调用这个函数的时候,会立即让当前的窗口失效,然后对整个窗口立即进行重绘。
UpdateWindow();//函数调用的时候直接将OnPaint调用到目标窗口,使目标窗口立即进行重绘
Invaldate();//函数函数中的参数是用来控制函数是否对背景进行擦除,当使用Invaldate的时候将函数参数设置成true或者不进行设置的时候,函数会对窗口的背


景进行擦除,这个时候在刷新窗口的时候,会看到窗口有闪烁现象。而当将参数设置成false的时候,则不会对背景进行擦除,只对绘制的图形进行擦除,则看不到


闪烁现象。
CRect m_rt;
GetClientRect(&m_rt);
InvalidateRect(&m_rt);InvaldateRect是通过指定失效矩形区域来控制重绘区域的。
---------------------------------------------------------------------------------------------
for(int i = m_list_one.GetItemCount() ;i > -1 ;--i) 
{   
m_list_one.DeleteItem(i);//删除第几行的数据
}
//先把ListCtrl表中的数据删除,再从新对获取数据库数据上来。
----------------------------------------------------------------------------------


POSITION pos=m_lst_stowagelist.GetFirstSelectedItemPosition();
//列表中无值,无选中  则退出,不执行以下代码
if(pos==NULL)
{


return;
}
//得到行号,通过POSITION转化
Item=(int)m_lst_stowagelist.GetNextSelectedItem(pos);//获取选中的一行
TRACE("%d",Item);
----------------------------------------------------------------------------------
for(int i = 0 ;i < m_lst_stowagelist.GetItemCount();++i)
{
TRACE("%d",i);//获取ListCtrl表中数据有几条循环从0—N
}
---------------------------------------------------------------------------------------------
|设置以下扩展风格可以在ListCtrl控件中添加复选框|
---------------------------------------------------------------------------------------------
m_Listequipment.SetExtendedStyle(LVS_EX_CHECKBOXES | LVS_EX_FULLROWSELECT);
LVS_EX_CHECKBOXES//这个是设置复选框
LVS_EX_FULLROWSELECT//这个是选中状态用到的


for(int i=0;i<m_Listequipment.GetItemCount();i++)
{
if(BST_CHECKED == m_Listequipment.GetCheck(i))
{
m_Listequipment.SetCheck(i,false);
}
}
--------------------------------------------------------------------------------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值