组合框的CBN_SELENDOK消息在用户移动鼠标选择当前组合框中未选中的其他项,然后按回车,这是组合框会向父窗口发送两次CBN_SELENDOK消息。
为什么会这样呢?如何区分这两次有什么区别?其实我就仅仅想处理一次而已。

解决方案 »

  1.   

    这个操作就是会有两次消息,如果你用鼠标点选或者用上下键来选择就只有一次。
    这两次消息你可以看做是已经选了某个选项后又用鼠标选择了一次这个选项。你只要定义一个变量记录当前选择,在处理这个消息的时候判断选择有没有改变即可。
      

  2.   

    你直接在消息响应函数中处理就可以了,因为反正这两次消息是连续的,在这两个消息之间,你的选择没办法改变,都是一样的,所以你做同样的事情没有关系,但是如果你要处理的事情有自加之类的操作的话,还是要像楼上所说的设一全局变量,在函数开头判断全局变量的值,如果选择没有改变就立即返回,不执行函数中其余代码就可以了。