虛列表的使用

2021-04-15 15:53:12 字數 2729 閱讀 1055

本文翻譯自http://www.microsoft.com/msj/archive/s2061.aspx

此文章可能包含在發布時有效的網路連線,但是現在可能連線到不存在的**或網頁。為保持文章的完整性,我們保留連線的文字,但是禁用連線。

november 1996

預覽ie4.0提供的通用控制項,第二部分

strohm armstrong

strohm armstrong是乙個微軟公司的技術支援工程師,專長是使用者和外殼技術。

單擊此處開啟或複製listview工程的檔案。

單擊此處開啟或複製vlistview工程的檔案。

在本系列的第一部分,我描述了公用控制項——作為microsoft® internet explorer (ie) 4.0的一部分——的一些新特性。我主要討論新的特性,比如自繪和新的控制項,比如coolbar和日期/時間選擇器(date/time picker)。

本月我將討論已有控制項的改進。我將描述改進的列表控制項(listview) ,它看起來可以容納無限個列表項;改進的標題控制項、標籤控制項、工具提示控制項、滑塊控制項。另外,我將提供兩個示例程式演示改進的列表控制項的正確使用方法,並使用一些第一部分討論過的新控制項。.

(譯者注:從windows98和windowsnt4.0開始,ie被整合到windows作業系統中,目前ie的最高版本是ie6.0第二測試版。預計windows xp將整合ie6.0。)

虛列表列表現在有乙個叫做虛列表的方法,允許包含大量的列表項。除了你加上的lvs_ownerdata風格之外,控制項和其他列表控制項的建立是一樣的。

在建立之後,你通過向控制項傳送lvm_setitemcount訊息,告訴它裡面有多少項。這時你在告訴它控制項中看起來有多少項,但是沒有真正插入任何專案。這個引數有乙個整型的wparam引數,是它將包含的列表項的數目。lparam是0或者一些標誌的組合,指定顯示的選項:lvsicf_noinvalidateall的意思是列表控制項不被重畫,除非被影響的項當前正在顯示;lvsicf_noscroll的意思是當列表項的數目改變的時候,列表控制項不改變滾動條上的滑塊的位置。

從這時候開始,任何顯示列表項將基於**機制,作如下工作:為每個顯示的列表項控制項傳送lvn_getdispinfo通知;你像為標準列表提供列表項顯示資訊一樣,處理這個通知。這個通知的lparam是乙個指向lv_dispinfo結構的指標。這個結構的mask成員指定了需要的資訊。

兩個通知是虛列表特有的。第乙個,lvn_odfinditem,在控制項要查詢乙個特定的項時被傳送;例如當輸入焦點在控制項上時,使用者輸入了一些東西。這個通知的lparam 是乙個指向nmlvfinditem結構的指標。這個結構包含乙個nmhdr結構 (hdr)、乙個查詢起始項的索引和乙個lvfindinfo(以前的lv_findinfo)結構(lvfi)。這個資訊提供給你,使得你可以查詢指定的列表項。你應該返回找到的列表項的索引,或者-1(如果沒有找到)。

第二個通知是lvn_odcachehint。 這個通知在列表將要顯示某個範圍內的列表項時傳送。這個通知的lparam 是乙個指向nmlvcachehint結構的指標。這個結構包含乙個nmhdr結構 (hdr)、乙個指出範圍的開始的整數,和乙個指出範圍的結束的整數。處理這個通知,你需要載入指定的列表項到本地快取,如果你正在維護這樣乙個快取的話。控制項為未快取的列表項仍可能傳送lvn_get-dispinfo,所以你的應用程式必須考慮這種情況。

vlistvw示例我的下乙個示例演示虛擬列表(見圖1 和圖 2)< font>

圖1 虛列表示例應用程式

在初始化時,vlistvw calls初始化initcommoncontrol***,使initcommoncontrol***結構的dwicc設定為icc_listview_classes來初始化列表類。在createlistview 函式中, createwindowex 建立列表。因為我在建立虛列表,所以lvs_ownerdata風格被新增到控制項的視窗風格中。小和大的影象列表通過使用影象列表api來建立和初始化。影象列表通過向列表傳送lvm_setimagelist訊息來連線到列表,一次是為了小圖示,一次是為了大圖示(像通常一樣,wparam指定你正在傳遞的圖表的大小)。在列表建立之後,vlistvw呼叫initlistview,通過使用lvm_insertcolumn設定列資訊。然後initlistview呼叫insertlistviewitems,清除已存在的全部全部列表項,並傳送lvm_setitemcount到列表告訴控制項他將包含多少項。

當使用者選擇了另一種檢視方式,應用程式簡單地呼叫switchview,傳遞需要的檢視風格。switchview 使用getwindowlong 函式和引數gwl_style返回當前風格。當前風格的位中的檢視風格的位被清掉,然後設上新的檢視風格。setwindowlong 和引數gwl_style被用來給控制項設定新的檢視風格。

oracle虛列中不能使用》的問題

關於oracle 的 rownum 問題,它只能用如下運算符號 而 使用的時候相當於 的效果。而使用 between.and 運算符號時,只要開始值大於1,則就會無結果顯示。因為rownum總是從1開始的,第一條不滿足去掉的話,第二條的rownum 又成了1。依此類推,所以永遠沒有滿足條件的記錄。r...

列表的使用

列表list list相當於類 li 2,398,小明 1,alxe 小花 age true,8 通過list類建立物件,物件的變數值叫li 列表的格式 用中括號括起來 用 號分割元素 元素可包含數字 字串 列表 可巢狀在列表裡,相當於該列表的乙個元素,像該例子中的第二個元素 1,alxe 小花 布...

python列表的使用 Python 列表常見用法

列表索引 mlist 1,2,3,3,e 4,5 a a abc 5,6,7 print mlist print mlist 3 7 print mlist 3 1 print len mlist mlist 2 hi,python print mlist print mlist 3 6 print...