zoukankan      html  css  js  c++  java
  • DuiLib的Combo控件点击无响应的问题

    注:此问题具有特殊性,不具有普适性。结果虽然让人很崩溃,但毕竟折磨了自己一个下午的时间,记录下来永记于此。

    今天的DuiLib开发过程中遇到了一个Combo点击没有反应,无法弹出下拉菜单的问题。此问题一出,遍寻网络无果,最终通过自己灵光一闪的思考,终于找到问题的原因。

    在不久前,为了让整个窗口都能够拖动,于是在xml中将Caption设置为了整个窗口,然后在代码的OnNcHitTest()函数中增加当时有的几个需要点击的控件。当这次添加Combo控件后,将这件事情忘记了。于是在这种情况下点击Combo控件也是拖动窗口的操作,Combo并不会响应!于是在OnNcHitTest( )函数的代码中将Combo控件也排除掉,问题解决!

    一个下午的折磨迎刃而解。也不知道自己是不是作。哈哈哈。

    附上OnNcHitTest( )函数的代码:

     1 LRESULT YoChoseVerFrame::OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
     2 {
     3     POINT pt; pt.x = GET_X_LPARAM(lParam); pt.y = GET_Y_LPARAM(lParam);
     4     ::ScreenToClient(*this, &pt);
     5 
     6     RECT rcClient;
     7     ::GetClientRect(*this, &rcClient);
     8     RECT rcCaption = m_pm.GetCaptionRect();
     9     if (pt.x >= /*rcClient.left + */rcCaption.left && pt.x < /*rcClient.right -*/ rcCaption.right 
    10         && pt.y >= rcCaption.top && pt.y < rcCaption.bottom) {
    11         CControlUI* pControl = static_cast<CControlUI*>(m_pm.FindControl(pt));
    12         if (pControl && _tcscmp(pControl->GetClass(), DUI_CTR_BUTTON) != 0 &&
    13             _tcscmp(pControl->GetClass(), DUI_CTR_OPTION) != 0 &&
    14             _tcscmp(pControl->GetClass(), DUI_CTR_TEXT) != 0 &&
    15             _tcscmp(pControl->GetClass(), DUI_CTR_COMBO) != 0)
    16             return HTCAPTION;
    17     }
    18     return HTCLIENT;
    19 }
  • 相关阅读:
    2006: [NOI2010]超级钢琴
    3640: JC的小苹果
    2005: [Noi2010]能量采集
    金蝶云星空修改密码策略的SQL脚本
    关于 springboot 过滤器中使用@Autowired 为空 以及 使用 @Value 无法读取yml配置的问题解决
    CAS .NET Client 循环重定向的解决办法
    K/3 Cloud SSO配置
    K/3 Cloud SSO配置答疑
    K/3 Cloud 元数据表
    AngularJS select中ngOptions用法详解【转】
  • 原文地址:https://www.cnblogs.com/leomoli/p/6842353.html
Copyright © 2011-2022 走看看