VC通用控制項程式設計之CList控制項

2021-04-23 21:19:30 字數 2669 閱讀 3748

(一)列表控制的主要功能

列表控制和視(list control&view)主要用來以各種方式顯示一組

資料記錄供使用者進行各種操作,windows98/95中資源管理器中的「檢視」標籤下的「大圖示|小圖示|列表|詳細資源」就是乙個非常好的典型應用。列表中的記錄可以包括多個

資料項,也可以包括表示

資料內容的大小圖示,用來表示

資料記錄的各種屬性。

列表控制提供了對windows列表功能操作的基本方法,而使用列表視的視函式可以對列表視進行各種操作,通過呼叫視成員getlistctrl獲取嵌在列表視內列表控制的引用(getlistctrl& ctrllist = getlistctrl()),就可以和列表控制一樣進行各種操作。操作乙個列表控制和視的基本方法為:建立列表控制;建立列表控制所需要的影象列表;向列表控制新增表列和表項;對列表進行各種控制,主要包括查詢、排序、刪除、顯示方式、排列方式以及各種訊息處理功能等;最後撤消列表控制。

對於乙個列表控制,其最典型最常用的顯示控制方式為:大圖示方式(lvs_icon)、小圖示方式(lvs_smallicon)、列表顯示方式(lvs_list)和詳細資料(即報告lvs_report)顯示方式。這可以通過設定其顯示方式屬性來實現。要控制列表所在視窗的風格,可通過功能函式getwindowlong和setwindowlong來實現,要控制列表圖示的對齊方式,可通過設定列表視窗的風格lvs_aligntop或lvs_alignleft來實現,

(二)列表控制的物件結構

1、列表控制的建立方法

clistctrl&listctrl 定義列表物件的結構

create 建立列表控制並繫結物件

列表控制clistctrl::create的呼叫格式如下:

bool create( dword dwstyle, const rect& rect, cwnd* pparentwnd, uint nid );

其中引數dwstyle用來確定列表控制的風格;rect用來確定列表控制的大小和位置;pparentwnd用來確定列表控制的父視窗,通常是乙個對話方塊;nid用來確定列表控制的標識。其中列表控制的風格可以是下列值的組合:

lvs_alignleft 用來確定表項的大小圖示以左對齊方式顯示;

lvs_aligntop 用來確定表項的大小圖示以頂對齊方式顯示;

lvs_autoarrange 用來確定表項的大小圖示以

自動排列方式顯示;

lvs_editlabels 設定表項文字可以編輯,父視窗必須設有lvn_endlabeledit風格;

lvs_icon 用來確定大圖示的顯示方式;

lvs_list 用來確定列表方式顯示;

lvs_nocolumnheader 用來確定在詳細資料方式時不顯示列表頭;

lvs_nolabelwrap 用來確定以單行方式顯示圖示的文字項;

lvs_noscroll 用來遮蔽滾動條;

lvs_nosortheader 用來確定列表頭不能用作按鈕功能;

lvs_ownerdrawfixed 在詳細列表方式時允許自繪視窗;

lvs_report 用來確定以詳細資料即報告方式顯示;

lvs_shareimagelists用來確定共享影象列表方式;

lvs_showselalways 用來確定一直顯示被選中表項方式;

lvs_singlesel 用來確定在某一時刻只能有一項被選中;

lvs_smallicon 用來確定小圖示顯示方式;

lvs_sortascending 用來確定表項排序時是基於表項文字的公升序方式;

lvs_sortdescending 用來確定表項排序時是基於表項文字的降序方式;

2、列表控制的屬性類

列表控制的屬性類包括取得列表控制的背景色getbkcolor、設定列表控制的背景色setbkcolor、取得列表控制的影象列表getimagelist、設定列表控制的影象列表setimagelist、取得列表項數目getitemcount、取得列表控制的屬性getitem、取得與表項相關的

資料getitemdata、設定表項的屬性setitem、設定與表項相關的數值setitemdata、取得相關聯的下乙個表項getnextitem、設定列表控制的文字顏色settextcolor、取得列表控制的文字背景顏色gettextbkcolor、設定表項的最大數目setitemcount和取得被選中表項的數目getselectedcount等。

3、列表控制的操作方法

列表控制的操作方法包括插入乙個新的表項insertitem、刪除乙個表項deleteitem、排序表項sortitems、測試列表的位置hittest、重繪表項redrawitems、插入乙個表列insertcolumn、刪除乙個表列deletecolumn、編輯乙個表項文字editlabel和重繪乙個表項drawitem等。

(三)列表控制的

資料結構

列表控制中包含兩個非常重要的

資料資料

結構和定義

typedef struct tagsps sps;

int callback comparefunc(lparam lparam1,lparam lparam2,lparam lparamsort);

(2)在vclistdlg.cpp中的起始處增加初始化

資料和程式定義

//在檔案開始處增加

資料資料

結構和**均不需要修改,實現起來比較容易。

VC通用控制項程式設計之CSlider控制項

滑動條控制 slider control 也叫軌道條控制,其主要是用乙個帶有軌道和滑標的小視窗以及視窗上的刻度,來讓使用者選擇乙個離散資料或乙個連續的數值區間。通過滑鼠或鍵盤來進行資料的選擇操作,這在win98 95中的很多應用程式中都可以看到,如控制面板中的滑鼠等,滑動條既可以是水平方式的也可以是...

VC 列表控制項 CList 使用方法

列表控制項可以看作是功能增強的listbox,它提供了四種風格,而且可以同時顯示一列的多中屬性值。mfc中使用clistctrl類來封裝列表控制項的各種操作。通過呼叫bool create dword dwstyle,const rect rect,cwnd pparentwnd,uint nid ...

使用VC自繪美化通用控制項

在vc60中新建乙個對話方塊工程,新增乙個新類,根據你要美化的控制項選擇對應的基類,如我要美化static控制項,就選擇cstatic做為基類,新類名為cstaticex。在新類中新增兩個類成員變數,乙個為控制項的背景色,乙個為文字的顏色 private colorref m backcolor c...