CHeadCtrl類的部分用法

2021-04-25 17:41:00 字數 2501 閱讀 6806

cheadctrl類的部分用法

以下轉貼自:http://blog.163.com/wang_zhi_bo3344/blog/static/39926070200772311554751/

cheadctrl

表頭控制(cheaderctrl)通常應用在視窗中的文字或資料的列表之上。一般為資料列的標題,可以包括多個部分,使用者可以拖動每個部分並可以控制每列的寬度。表頭控制類提供了普通表頭控制的基本方法,只有在windows95以後版本系統中才提供,其方法包含在afxcmn.h檔案中,一般與標籤控制(ctabctrl)和列表控制(clistctrl)組合使用。

1.1 表頭控制的物件結構

1.1.1 表頭控制物件的建立方法

cheaderctrl &cheaderctrl 建立表頭控制物件

create 建立表頭並繫結物件

cheaderctrl::create的格式如下:bool create( dword dwstyle, const rect&

rect, cwnd* pparentwnd, uint nid );

其返回值非零時初始化成功,否則失敗。

引數dwstyle用來確定表頭控制型別;rect用來確定表頭控制的大小和位置;parentwnd用來確定表頭控制的父視窗;nid用來表示表頭控制的標誌。

表頭控制風格包括:

hds_buttons 表示表頭控制外觀類似按鈕;

hds_horz 表示表頭控制為水平排列;

hds_vert 表示表頭控制為垂直排列;

hds_hidden 表示表頭控制為隱藏模式。

它也可以使用普通類控制風格,包括:

ccs_bottom 設定控制位置在父視窗的底部並與父視窗同樣寬度;

ccs_nodivider 在控制頂部形成兩個畫素的高亮區;

ccs_nohilite 在控制頂部形成乙個畫素的高亮區;

ccs_nomovey 在響應wm_size訊息時重置大小並水平排列;

ccs_noparentalign 使控制自動靠近父視窗的頂部或底部;

ccs_noresize 設定初始大小或新值時使控制使用預設寬度和高度;

ccs_top 設定在父視窗客戶區域的頂部並與父視窗同樣寬度;

同樣表頭控制也可以使用視窗控制風格,包括:

ws_child 建立乙個子視窗,不能用於ws_popup視窗型別;

ws_visible 建立乙個初始時不可見的視窗;

ws_disabled 建立乙個初始時無效的視窗;

ws_group 確定可用游標移動的控制群組;

ws_tabstop 確定可用tab控制移動站點;

表頭控制一般分為兩個步驟,首先確定表頭控制的資料結構,然後建立表頭控制並繫結物件。

1.1.2 表頭控制的屬性

表頭控制的屬性包括取得表頭控制中專案的數量getitemcount、取得表頭控制中某一項目的內容getitem和設定表頭控制中某一項目的內容setitem。

1.1.3 表頭控制的操作方法

表頭控制的操作方法包括向表頭控制中插入乙個新專案insertitem、從表頭控制中刪除乙個專案deleteitem和繪製表頭中給定的專案drawitem等。

1.2 表頭控制的資料結構

在使用表頭控制時,首先必須建立乙個資料結構hd_item,其結構定義如下:

typedef struct _hd_item

hd_item;

遮蔽控制位說明了資料結構成員中包含的有效資料,可以是下面標誌的組合:

hdi_bitmap hbm成員有效

hdi_format fmt 成員有效

hdi_lparam lparam成員有效

hdi_text psztext 和cchtextmax 成員有效

hdi_width cxy 成員有效並確定專案寬度值

格式標誌位fmt可以是以下標誌的組合:

hdf_center 表頭專案居中

hdf_left 表頭專案左對齊

hdf_right 表頭專案右對齊

hdf_bitmap 表頭顯示乙個位圖

hdf_ownerdraw 由主視窗自繪表頭專案

hdf_string 表頭專案為乙個字串

1.3 表頭控制的應用技巧

由於表頭控制無法單獨使用,其主要是配合列表控制和標籤控制,並多以文字表頭應用多見,insertitem、setitem和getitem是常用的方法,如在列表控制時利用insertcolumn屬性就可以增加乙個表列的文字標題,具體用法和技巧見列表控制和標籤控制。下面以在列表控制中的增加表列的方法來具體說明:

lvcol.psztext=品 名;//設定第一列名

lvcol.isubitem=i; //表列寬

m_listctrl.insertcolumn(i++,&lvcol);//插入一列

lvcol.psztext=數 量;//第二列名

lvcol.isubitem=i;

lvcol.cx=70;

m_listctrl.insertcolumn(i++,&lvcol);//插入一列

......

grep部分用法

在看鳥哥的linux私房菜 總結一下今天看的東西 grep 用於正規表示式 regular expression 一般用法 grep a b color auto string filename a after後面可接數字表示向後n行 b before接數字表示向後n行 color選項設定標註顏色 ...

Meta 部分用法

model.userinfo.meta.model name 獲取該類對應表名 字串型別 model.userinfo.meta.get field username 獲取該類內指定字段資訊 物件 model.userinfo.meta.fields 獲取該類內所有字段物件 model.userin...

extern的部分用法

extern c 這個就不說了。解決被編譯器認為重複定義的問題,直接看 某個標頭檔案,比如叫 externtest.h 中 externintiextern 這樣就是乙個變數宣告 而不是定義,因為沒有分配儲存空間 這以後就可以引用這個變數,而這個變數的儲存於下面的 int iextern 的那個位置...