小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

CListCtrl控件

 行走在理想邊緣 2014-05-24

常用操作:
1、添加列標題頭:InsertColumn
2、獲取與設置列寬:GetColumnWidth、SetColumnWidth
3、添加一行:InsertItem、SetItemText
4、獲取與設置單元文本:GetItemText、SetItemText
5、允許多行選中時,獲取選中的行數(shù):GetSelectedCount
6、單行選中時,獲取選中的行:GetSelectionMark
7、選中某行:SetItemState(n, LVIS_SELECTED, LVIS_SELECTED);取消選中的行SetItemState(n,0,-1);使用此函數(shù)前需要先調(diào)用SetFocus();
8、獲取某行的狀態(tài)是否為選中:GetItemState(n, LVIS_SELECTED) == LVIS_SELECTED
9、刪除所有行:DeleteAllItems
10、刪除指定列:DeleteColumn
11、刪除指定行:DeleteItem
12、獲取與設置列表控件的背景色:GetBkColor、SetBkColor
13、獲取與設置文字背景色:GetTextBkColor、SetTextBkColor
14、獲取與設置文字前景色:GetTextColor、SetTextColor
15、獲取與設置Check:GetCheck、SetCheck,使用前需要設置控件屬性SetExtendedStyle(LVS_EX_CHECKBOXES);使控件有勾選功能
16、獲取與設置圖標列表:GetImageList、SetImageList
17、獲取與設置行附加數(shù)據(jù):GetItemData、SetItemData
18、獲取與設置擴展風格樣式:GetExtendedStyle、SetExtendedStyle
19、設置正行選中與網(wǎng)格線:SetExtendedStyle(LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
20、讓ListCtrl支持編輯的功能:
①、將屬性中的 Edit Labels 設置為 True;
②、響應控件的 LVN_EDNLABELEDIT 消息,添加如下代碼:
CString strText;
m_ListCtrl.GetEditControl()->GetWindowText(strText);
m_ListCtrl.SetItemText(pDispInfo->item.iItem, pDispInfo->item.iSubItem, strText);

21、多行可選時,跳到第一個被選中的行,即使第一個被選中的行可視。

  POSITION pos = pView->GetListCtrl().GetFirstSelectedItemPosition();
  int nFirstSel = pView->GetListCtrl().GetNextSelectedItem(pos);
  if (nFirstSel != -1)
  {
   pView->GetListCtrl().EnsureVisible(nFirstSel,FALSE);
  } 

 

列表中添加圖標代碼:

 UINT nIconID[] = {IDI_ICON1,IDI_ICON2,IDI_ICON3,IDI_ICON4,IDI_ICON5};//圖標ID
 m_ImageList.Create(16,16,ILC_COLOR24,sizeof(nIconID)/sizeof(UINT),0);//初始化CImageList類,sizeof(nIconID)/sizeof(UINT)為圖標個數(shù),后面的0表示CImageList在sizeof(nIconID)/sizeof(UINT)個圖標個數(shù)的基礎上可再添加多少個圖標。
 m_ImageList.SetBkColor(RGB(255,255,255));//設置背景色為白色
 for(int i = 0; i < sizeof(nIconID)/sizeof(UINT); i++)
 {
  m_ImageList.Add(AfxGetApp()->LoadIcon(nIconID[i]));//將圖標添加到CImageList
 }
 m_ListCtrl.SetImageList(&m_ImageList,LVSIL_SMALL);//設置列表控件顯示圖標

 m_ListCtrl.InsertColumn(0,_T("第1列"),0,100);
 m_ListCtrl.InsertColumn(1,_T("第2列"),0,100);
 m_ListCtrl.InsertColumn(2,_T("第3列"),0,100);
 m_ListCtrl.InsertItem(0,_T("數(shù)據(jù)1"),0);//后面的0表示添加CImageList中的第0個圖標
 m_ListCtrl.InsertItem(1,_T("數(shù)據(jù)2"),1);//后面的1表示添加CImageList中的第1個圖標
 m_ListCtrl.InsertItem(2,_T("數(shù)據(jù)3"),2);
 m_ListCtrl.SetItemText(0,1,_T("01"));
 m_ListCtrl.SetExtendedStyle(LVS_EX_CHECKBOXES);//設置控件有勾選功能
 DWORD dwStyle = m_ListCtrl.GetExtendedStyle();
 m_ListCtrl.SetExtendedStyle(dwStyle|LVS_EX_FULLROWSELECT);設置控件選中行的功能

 

遍歷文件夾并顯示文件名與圖標:

 CFileFind fileFind;
 CString szDir("D:\\Tools");
 BOOL bRet = fileFind.FindFile(szDir+"\\*.*");
 while(bRet)
 {
  bRet = fileFind.FindNextFile();
  if(fileFind.IsDots())
   continue;
  if(!fileFind.IsDirectory())
  {
   SHFILEINFO shfi;
   SHGetFileInfo(fileFind.GetFilePath(),FILE_ATTRIBUTE_NORMAL,&shfi,sizeof(shfi),SHGFI_ICON|SHGFI_USEFILEATTRIBUTES|SHGFI_TYPENAME);
   int nImageID = m_ImageList.Add(shfi.hIcon);
   m_ListCtrl.InsertItem(m_ListCtrl.GetItemCount(),fileFind.GetFileName(),nImageID);
  }
 }

 

復制列表內(nèi)容

void CXXXView::OnCopydataToClipboard()
{
 int nSelectCount = GetListCtrl().GetSelectedCount();
 int nSelect = -1;
 CString strData = _T("");
 for (int i = 0; i < nSelectCount; i++)
 {
  //找到選擇的行號
  nSelect = GetListCtrl().GetNextItem(nSelect,LVNI_ALL | LVNI_SELECTED);
  //列數(shù)
  int nColumnCount = GetListCtrl().GetHeaderCtrl()->GetItemCount();
  for (int j = 0; j < nColumnCount; j++)
  {
   CString text;
   text = GetListCtrl().GetItemText(nSelect,j);
   if (j != 0)
    strData += "\t";
   strData += text;
  }
  //用\r\n來控制回車和換行
  if (i != nSelectCount - 1)
   strData += "\r\n";
 }
 
 //復制到剪貼板
 HGLOBAL clipbordBuf = GlobalAlloc(GMEM_DDESHARE,2*(strData.GetLength() + 1));
 TCHAR *pBuf = (TCHAR*)GlobalLock(clipbordBuf);
 lstrcpy((LPTSTR)pBuf,(LPCTSTR)strData);
 GlobalUnlock(clipbordBuf);

 OpenClipboard();
 EmptyClipboard();
 SetClipboardData(CF_TEXT,pBuf);
 CloseClipboard();
}

 

 

在非第一列中添加圖標

m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_SUBITEMIMAGES);

 

m_List.SetItem(0,1,LVIF_TEXT|LVIF_IMAGE,“aaa”,0,0,0,0);//在第一行第二列加入第1個圖標

m_List.SetItem(i,1,LVIF_TEXT|LVIF_IMAGE,szBuffer,i,0,0,0);



    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多