win32 使用列表框

  1. 列表框介紹:
    1. 列表框提供一個可供用戶選擇的列表,用戶可以一次選擇一個項目,也可以同時選中多個項目。
  2. 資源的定義介紹:
    1. 資源代碼:
      在這裏插入圖片描述
    2. 可選擇的列表框風格:在這裏插入圖片描述
  3. 用戶消息的處理:
    1. WM_COMMAND 通知碼:當列表框有 LBS_NOTIFY 風格的時候,用戶有所動作時列表框會向父窗口發送 WM_COMMAND 消息,同時在 wParam的高16位中 指定 通知碼,列表框的通知碼很少,基本就以下幾類:在這裏插入圖片描述
      其中,我們最關心的就是 LBN_DBLCLK 和 LBN_SELCHANGE 通知碼:
      1. 在單選列表中,如果程序雙擊來選擇項目,那麼就要用 LBN_DBLCLK,雙擊例子中彈出對話框就是。
      2. 在多選列表中,由於用戶可能選擇了多個項目,所以一般不用雙擊方法選定,如果收到 LBN_SELECHANGE 通知的話,可以得知用戶有一個選擇的動作,可以在這裏來進行操作。
  4. 向列表框發送的消息:
    1. 消息種類:
      在這裏插入圖片描述在這裏插入圖片描述
    2. LB_DIR 消息解讀:它可以將制定目錄中的文件名自動列出來加入列表框中(這在一定場合非常方便的),如本例子中使用 *.* 將當前目錄的全部文件名加到列表框中。LB_DIR消息中的 wParam參數可以指定的數據可以是下列值的組合( XX|XX):在這裏插入圖片描述
    3. 常用的操作:
      1. 在列表框中初始化時加入項目可以使用 LB_ADDSTRING 和 LB_INSERTSTRING 消息,刪除項目可以用 LB_DELETESTRING 消息,刪除全部項目用 LB_RESETCONTENT 消息。
      2. 對於單選框,要獲取選中項目可以發送 LB_GETCURSEL消息,要得到這個項目的字符串需要再用索引值通過 LB_GETTEXT 消息獲取。
      3. 對於多選框,需要用 LB)GETSELITEMS 消息獲取全部選中項目,這個消息返回的是一個列表,所有選中項目的索引按順序返回到緩衝區中。所以,在例子中處理“查看”按鈕消息(IDOK)的時候,程序先發送 LB_GETSELCOUNT 消息得到選中的項目數,以便在下面用一個循環獲取所有的項目,得到項目數後,再用LB_GETSELTIEMS 將選中的項目的索引取到 @szBuffer中,接下來進入一個循環,循環的次數就是 LB_GETSELCOUNT 得到的數值,在循環中,程序從 @szBuffer 中將 索引值逐個取出來並用 LB_GETTEXT 消息獲取每一項的字符串,最後用一個 MessageBOX顯示出來。
  5. 代碼解讀:
    1. 列表框的初始化在這裏插入圖片描述
    2. 雙擊顯示 消息框:
      在這裏插入圖片描述
    3. 多選點確定顯示 消息框:
      1. 點擊多選框所進行的操作在這裏插入圖片描述
      2. 點擊 查看按鈕 所進行的操作
        在這裏插入圖片描述
      3. 點擊 復位按鈕 所進行的操作
        在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章