HTControl之CHTReportList控制項類
作者 |
李海濤 |
日期 |
2012-10-05 |
|
文檔只是簡要說明,在CHTReportList.h中有各介面和變數的詳細說明。還可以下載HTControlDemo進行調試。 http://download.csdn.net/detail/htcontrol/5423895感興趣的朋友請關注我的資源清單中最新版本 |
一 替換CHTReportList捲軸
VC提供的CListCtrl已經具有相當豐富的功能,而且效率也很好。此類繼承自CListCtrl。但是如果包含CListCtrl控制項的介面風格與CListCtrl的捲軸很不協調那就糟糕了。此類提供了去掉CListCtrl預設捲軸,替換成自己繪製的捲軸。這樣就不會破壞介面整體表現了。
二 捲軸的任意尺寸
此類替換的捲軸並不需要與預設的捲軸同樣的寬度,可以支援任意的寬度,而且不需要捲軸時候捲軸自動消失,控制項的客戶區佔據此空間,這樣介面的布局不會受到影響。
三 不受作業系統主題的影響
不同的作業系統主題,各種介面元素的尺寸是不同的,同樣的主題也可以調整介面元素的尺寸,但是此類是替換掉預設的捲軸。自繪的捲軸支援任意的尺寸,這就決定了不會受作業系統主題的影響。
四 支援CListCtrl背景圖顯示
CListCtrl提供了一個設定背景圖SetBkImage介面,但是這個介面存在一個問題:視窗內容滾動時,背景圖隨之滾動,這樣就失去了背景圖的意義了,搞不懂微軟為什麼這樣設計的(東西方文化差異?其他原因?),CHTReportList類通過重繪可以實現真正意義上的背景圖,不會隨視窗內容滾動。
五 CListCtrl框選的重繪
CListCtrl預設的框選是一個虛線框,而且存在問題,有時候在表單上有殘留。預設的虛線框可能與整體介面風格很不一致。CHTReportList重繪了框選,而且不受作業系統主題的影響。
六 在CListCtrl某列添加進度條
Flashget, 迅雷,電驢等下載工具的下載列表中下載進度都是繪製的進度條。但是CListCtrl是不支援的。CHTReportList提供在任意列繪製進度條的功能。當然,繪製其它控制項元素也是可以的(目前是繪製的進度條,不可能一個類把所有的都支援了)。
七 CListCtrl原有功能全部保留
我看過一些其它的CListCtrl的繼承類,很多喪失了一些CListCtrl原有的功能,比如框選只能在空白區開始,CHTReportList是支援在任意位置開始框選的。CHTReportList保留幾乎CListCtrl所有原有的功能。