创建的时候加人排序属性
xxx.Create(WS_CHILD|WS_VISIBLE|CBS_DROPDOWNLIST|CBS_SORT ,r,this,1000);这个能排序,但是大小写好像没区分

解决方案 »

  1.   

    目前有一个想法,在PreTranslateMessage中拦截一下他初始化列表框的消息,使其按照要求来,但是是哪个消息呢,有人知道吗?
      

  2.   

    在列表弹出来前你会收到一个通知消息
    你可以试试在这个通知消息里面,遍历所有列表项用 lstrcmp 来比对当前输入的内容
    如果完全相同的就自己 SetCurSel
      

  3.   


    只要判断当前窗口是list控件 然后是左键单击消息就处理...
      

  4.   

    还有一个想法  貌似可以捕捉CB_SHOWDROPDOWN消息,可是怎么捕捉控件消息呢
      

  5.   

    拦截WM_COMMAND消息, 自己处理EN_UPDATE消息即可, 这里还可以完成 自动完成功能.
      

  6.   

    能说详细一点么?不胜感激   我试了一下在PreTranslateMessage里边拦截不到WM_COMMAND啊
      

  7.   

    不是PreTranslateMessage, 直接重载CComboBox在, 然后在消息映射中添加WM_COMMAND的映射即可. 这个消息控件不会发给父窗口, 是自身内部的消息
      

  8.   

    响应ON_CBN_EDITUPDATE,自己判断是否是对应项,注意了要做多层判断,别搞死循环了