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. 点击 复位按钮 所进行的操作
        在这里插入图片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章