WindowsMobile開發小結———— CListCtrl用法

來源:互聯網
上載者:User

一、CListCtrl在MFC中共有四種view可供選擇,每種view用不同的方式顯示列表的內容。

· 表徵圖視圖(Icon view)
每一項以全尺寸表徵圖(32×32像素)出現,下面有一個標籤。使用者可在列表視圖視窗拖動項到任意位置。
· 小表徵圖視圖(Small icon view)
視圖每一項以小表徵圖(16×16像素)出現,右邊有一個標籤。使用者可在列表視圖視窗拖動項到任意位置。
· 列表視圖(List view)
每一項以小表徵圖出現,下面有一個標籤。項按列排列,不能拖動到列表視圖視窗的任何位置。
· 報表視圖(Report view)
每一項在本行上出現,右邊有排列成列的附加資訊。最左邊的列包含小表徵圖和標籤,下一列包含應用指定的子項。

二、使用List Control控制項有兩種方法。
1.在對話方塊體上添加,直接從工具箱裡點List Control拖拉即可,在屬性裡view項設定檢視類型。
CListCtrl *pMyList;
pMyList = (CListCtrl*)GetDlgItem(IDC_LIST);
2.無對話方塊體,直接顯示在程式初始視圖視窗裡面。這時,如果基於CListView的類,聲明變數,然後調用CListView類裡的成員函數GetListCtrl()。
CListCtrl *pMyList;
pMyList = &GetListCtrl();
pMyList->ModifyStyle(0,LVS_ICON);//設定為檢視類型  

三、其它設定。如顯示樣式、位置、背景等。

設定顯示樣式:網格,選中時整行高亮
pMyList->SetExtendedStyle( LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES );

如要固定每列不能用滑鼠拖動,添加如下代碼:

CHeaderCtrl* pHeaderCtrl = (CHeaderCtrl*)pMyList->GetHeaderCtrl();
pHeaderCtrl->EnableWindow( FALSE ) ;

四、之後可以插入行、列。下例為Report view 類型的List,除第一行為標題,其餘每行的第一列為item項,第二列為subitem。
pMyList->InsertColumn(0,_T("節次"),LVCFMT_CENTER,iColumnWidth);
pMyList->InsertColumn(1,_T("課程"),LVCFMT_CENTER ,iColumnWidth);

pMyList->InsertItem(0,_T("第一節"));
pMyList->SetItemText(0,1,_T("語文"));

pMyList->InsertItem(1,_T("第二節"));
pMyList->SetItemText(1,1,_T("數學"));

五、一般都要為List加表徵圖的,可以加bitmap或者icon表徵圖。

1.Bitmap表徵圖。

CBitmap *pBitmap=new CBitmap;
CImageList *pImageList=new CImageList;

pBitmap->LoadBitmap(IDB_BITMAP1);
pImageList->Create (48,48,ILC_COLOR,7,2);

pImageList->Add(PBitmap,RGB(0,0,0));

pListView->SetImageList(pImageList,LVSIL_NORMAL);//ICON 視圖加上這行

然後pMyList->InsertItem(0,_T("第一節")),改為pMyList->InsertItem(0,_T("第一節"),iImage),iImage為ImageList中的圖片編號

2.當然也可添加ICON表徵圖,如下。

//建立用來存放表徵圖的列表
CImageList* imageList = new CImageList();
imageList->Create(32,32,ILC_COLORDDB|ILC_MASK,7,7);

//從資源載入表徵圖
HICON   hIcon   =   ::LoadIcon(AfxGetResourceHandle(),   MAKEINTRESOURCE(IDI_ICON));
imageList->Add(hIcon);

擷取當前選中清單項目編號:int i =pMyList->GetSelectionMark();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.