zoukankan      html  css  js  c++  java
  • duilib combo控件,当鼠标滚动时下拉列表自动关闭的bug的修复

    转载请说明出处,谢谢~~

          群里有朋友提到了使用Combo控件时,当下拉列表出现,此时鼠标滚轮滚动,下拉列表就自动消失了。我看了一下源码,这个bug的修复很简单。

          CComboUI控件被单击时创建CComboWnd窗体来模拟下拉菜单。CComboWnd类在HandleMessage函数里处理了鼠标滚动消息WM_MOUSEWHEEL,他把这个消息转发给CComboUI的DoEvent函数去处理,而CComboUI的DoEvent函数处理对应的UIEVENT_SCROLLWHEEL消息,又转而调用了SelectItem函数,SelectItem函数的第一句代码如下:

    <pre name="code" class="cpp">bool CComboUI::SelectItem(int iIndex, bool bTakeFocus)
    {
        if( m_pWindow != NULL ) m_pWindow->Close();
        if( iIndex == m_iCurSel ) return true;
    //省略其余代码
    }


    
          如果发现下来菜单存在,就关闭他。所以这里注释掉这一局代码就OK了,仅此而已。
    



          我把我自己使用的Duilib和Uilib库都上传到了GitHub,完整的Duilib库代码下载地址:点击打开链接

          这是我自己使用的Duilib和Uilib库,修复了我在博客中说明的所有bug以及很多还没有去说明的bug,同样也包含别人修复过的bug。库里面包含我扩展过的部分控件。以及添加了Duilib扩展群群主heat的透明异形窗体功能的支持。
         这个库是我用vs2010修改的。如果你无法正常打开我的库或者编译有问题,那么建议把你需要的.h或者.cpp文件替换你自己的duilib库对应的文件。
         我修改过的代码,一般可以通过搜索“redrain”找到对应的位置和修改时间
         此库是我个人使用,由于我水平所限,所以不保证我修改的代码的质量。请你看过代码后再决定是否使用。使用这个库出现问题,不承担任何责任。


      Redrain  2014.10.30

  • 相关阅读:
    正则表达式基础知识
    成功的基本法则
    Java实现简单的格式化信函生成器
    C实现哈希表
    C实现求解给定文本中以指定字符开头和结尾的子串数量的三种算法
    Java实现求解二项式系数及代码重构
    Java 异常处理学习总结
    C实现大整数幂求模问题的两种算法
    linux 学习前言
    提高编程能力的10种方法
  • 原文地址:https://www.cnblogs.com/redrainblog/p/4209725.html
Copyright © 2011-2022 走看看