代码之家  ›  专栏  ›  技术社区  ›  dangerousdave

mfc clistctrl的选择更改事件,仅由鼠标/键盘输入引起

  •  2
  • dangerousdave  · 技术社区  · 15 年前

    我使用的是mfc listcrl,是否知道选择更改是由鼠标/键盘输入引起的,而不是程序更改?对于列表框,我所追求的行为与“自我改变”相同。谢谢

    2 回复  |  直到 15 年前
        1
  •  2
  •   Stefan    15 年前

    你可以使用 GetKeyState (1)找出是否按下了键或鼠标按钮。不要使用 GetAsyncKeyState ()因为该API将告诉您键盘/鼠标按钮的当前状态,当您处理lbn_selchange消息时,这些状态可能已更改。但是getkeystate()将告诉您生成lbn_selchange时的状态。

        2
  •  0
  •   Goz    15 年前

    阿法克没有办法找出这些信息。您知道是否要将消息发送到clistctrl,因此如果要发送,应该设置一个标志。如果收到lbn_selchange消息,但尚未设置标志,则该标志必须来自键盘/鼠标。