win32 使用列表框

    xiaoxiao2022-12-08  53

    列表框介绍: 列表框提供一个可供用户选择的列表,用户可以一次选择一个项目,也可以同时选中多个项目。 资源的定义介绍: 资源代码: 可选择的列表框风格: 用户消息的处理: WM_COMMAND 通知码:当列表框有 LBS_NOTIFY 风格的时候,用户有所动作时列表框会向父窗口发送 WM_COMMAND 消息,同时在 wParam的高16位中 指定 通知码,列表框的通知码很少,基本就以下几类: 其中,我们最关心的就是 LBN_DBLCLK 和 LBN_SELCHANGE 通知码: 在单选列表中,如果程序双击来选择项目,那么就要用 LBN_DBLCLK,双击例子中弹出对话框就是。在多选列表中,由于用户可能选择了多个项目,所以一般不用双击方法选定,如果收到 LBN_SELECHANGE 通知的话,可以得知用户有一个选择的动作,可以在这里来进行操作。 向列表框发送的消息: 消息种类: LB_DIR 消息解读:它可以将制定目录中的文件名自动列出来加入列表框中(这在一定场合非常方便的),如本例子中使用 *.* 将当前目录的全部文件名加到列表框中。LB_DIR消息中的 wParam参数可以指定的数据可以是下列值的组合( XX|XX):常用的操作: 在列表框中初始化时加入项目可以使用 LB_ADDSTRING 和 LB_INSERTSTRING 消息,删除项目可以用 LB_DELETESTRING 消息,删除全部项目用 LB_RESETCONTENT 消息。对于单选框,要获取选中项目可以发送 LB_GETCURSEL消息,要得到这个项目的字符串需要再用索引值通过 LB_GETTEXT 消息获取。对于多选框,需要用 LB)GETSELITEMS 消息获取全部选中项目,这个消息返回的是一个列表,所有选中项目的索引按顺序返回到缓冲区中。所以,在例子中处理“查看”按钮消息(IDOK)的时候,程序先发送 LB_GETSELCOUNT 消息得到选中的项目数,以便在下面用一个循环获取所有的项目,得到项目数后,再用LB_GETSELTIEMS 将选中的项目的索引取到 @szBuffer中,接下来进入一个循环,循环的次数就是 LB_GETSELCOUNT 得到的数值,在循环中,程序从 @szBuffer 中将 索引值逐个取出来并用 LB_GETTEXT 消息获取每一项的字符串,最后用一个 MessageBOX显示出来。 代码解读: 列表框的初始化双击显示 消息框: 多选点确定显示 消息框: 点击多选框所进行的操作点击 查看按钮 所进行的操作 点击 复位按钮 所进行的操作
    最新回复(0)