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);
}
}
--------------------------------------------------------------------------------------------
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章