Win32中的listbox學習

2021-09-10 21:41:30 字數 2486 閱讀 7967

列表框樣式:

visual studio 2013 其他版本

當列表框不包含足夠的項滾動時,lbs_disablenoscroll列表框顯示乙個禁用的垂直滾動條。 若無此樣式,當列表框不包含足夠的項時,滾動條將隱藏。

使用 shift 鍵和滑鼠或特定組合鍵lbs_extendedsel,使用者可以選擇多個項。

lbs_hasstrings指定包含字串的項所有者描述列表框。 列表框保留記憶體和字串的指標,該應用程式可使用 gettext 成員函式檢索文字特定項的。

lbs_multicolumn指定水平滾動的多列列表框。 setcolumnwidth 成員函式將列的寬度。

每次使用者單擊或雙擊字串,選擇lbs_multiplesel字串之間切換。 任意數量的字串進行選擇。

lbs_nodata指定無資料列表框。 當計數,列表中將多項一次,指定此樣式。 無資料列表框還必須具有lbs_ownerdrawfixed,樣式,但無法具有lbs_sortlbs_hasstrings樣式。

由資料類似於列表框的所有者描述列表框,但不包含字串或位圖資料的項。 命令新增,插入或刪除項始終忽略任何指定項資料;請求始終失敗查詢在列表框內的字串。 當必須繪製時,系統傳送 wm_drawitem 訊息。項所有者視窗。 drawitemstruct 結構的 itemid 成員將用 wm_drawitem 訊息指定要繪製項的行號。 無資料列表框不傳送 wm_deleteitem 訊息。

在建立列表框,lbs_nointegralheight列表框的尺寸正確應用程式指定的範圍。 通常,視窗大小列表框,使列表框部分不顯示項。

當更改時,lbs_noredraw列表框顯示未更新。 此樣式可通過傳送 wm_setredraw 訊息隨時更改。

lbs_nosel指定列表框包含中檢視,但不會選擇的項。

lbs_notify父視窗接收輸入訊息,每當使用者單擊或雙擊字串。

lbs_ownerdrawfixed列表框的所有者負責繪製其內容執行;在列表框項的是同一高度。

lbs_ownerdrawvariable列表框的所有者負責繪製其內容執行;在列表框項的高度是可變的。

在列表框的lbs_sort字串按字母順序排序。

在列表框的lbs_standard字串按字母順序排序,並且,父視窗接收輸入訊息,每當使用者單擊或雙擊字串。 列表框中包含在任何範圍。

當繪製製表符字串時,使能識別並展開製表符。lbs_usetabstops列表框 預設選項卡位置 32 是對話方塊單位。對話方塊單位 (a 是乙個水平或垂直距離。 水平的對話方塊單位相等到當前基本寬度對話方塊單位的四分之一。 對話方塊單位計算基於當前基礎系統字型的高度和寬度。 getdialogbaseunits windows 函式返回在畫素的當前基本單元對話方塊。)不應使用此樣式與lbs_ownerdrawfixed

lbs_wantkeyboardinput列表框的所有者接收 wm_vkeytoitem 或 wm_chartoitem 訊息,只要使用者按鍵,當列表框具有輸入焦點時。 這允許您的應用程式處理在執行特定型別。

–以上為摘抄msdn的筆記,

1.在我的使用中遇到的問題也拿出來分享一下,主要是lbs_ownerdrawfixed這個引數,解釋是「列表框的所有者負責繪製其內容執行;在列表框項的是同一高度。」,沒理解到他說的是什麼意思,我遇到的問題是,加上了這個引數之後,listbox就沒有了內容:

去掉之後的效果:

還沒理解到是為什麼,希望了解的告訴一下

2.lbs_standard這個引數可以自動幫助我們排序,順序是數字0-9,a-z(不分大小寫,如果為同一字母,小寫會在前面),漢字拼音首字母a-z

3.lbs_hasstrings目前還沒使用到,但是看了功能,檢索的時候會用到,到時候再來更新

win32實現ListBox自繪

在createwindowex建立視窗時,需要對引數dwstyle設定上lbs ownerdrawfixed lbs hasstrings這兩個屬性。並且需要在建立listbox視窗的父視窗中處理wm drawitem和wm measureitem兩個訊息進行列表框的重繪。lbs ownerdraw...

為什麼要學Win32及Win32程式框架

前言 最近在看侯捷的 深入淺出mfc 在理解mfc時覺得必須要掌握win32,才能更好的理解mfc,才能寫出更有用的程式。於是將自己對win32程式的理解寫了下來,供朋友們參考。文中的兩幅圖是從書中擷取的。正文 windows程式的進入點是winmain函式,它有四個引數,形式如下 int wina...

為什麼要學Win32及Win32程式框架

前言 最近在看侯捷的 深入淺出mfc 在理解mfc時覺得必須要掌握win32,才能更好的理解mfc,才能寫出更有用的程式。於是將自己對win32程式的理解寫了下來,供朋友們參考。文中的兩幅圖是從書中擷取的。正文 windows程式的進入點是winmain函式,它有四個引數,形式如下 int wina...