Duilib界面拖动问题

Posted 卖杏花的陆游

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Duilib界面拖动问题相关的知识,希望对你有一定的参考价值。

  • Duilib界面需要通过全窗口来拖动窗口位置时,可以在OnNcHitTest函数中通过以下代码实现,也不影响其他控件的使用:
        POINT pt; pt.x = GET_X_LPARAM(lParam); pt.y = GET_Y_LPARAM(lParam);
        ::ScreenToClient(*this, &pt);
    
        RECT rcClient;
        ::GetClientRect(*this, &rcClient);
        RECT rcCaption = m_pm.GetCaptionRect();
        if (pt.x >= rcClient.left && pt.x < rcClient.right && pt.y >= rcClient.top && pt.y < rcClient.bottom) {
            CControlUI* pControl = static_cast<CControlUI*>(m_pm.FindControl(pt));
            if (pControl && _tcscmp(pControl->GetClass(), DUI_CTR_BUTTON) != 0 &&
                _tcscmp(pControl->GetClass(), DUI_CTR_OPTION) != 0 &&
                _tcscmp(pControl->GetClass(), DUI_CTR_TEXT) != 0)
                return HTCAPTION;
        }
    
        return HTCLIENT;

     

以上是关于Duilib界面拖动问题的主要内容,如果未能解决你的问题,请参考以下文章

Duilib改进窗口拖动,使整个窗口都能拖动(转载)

duilib入门问题集

在VC6.0中能不能使用Duilib界面库呢?

Dump微信PC端的界面Duilib文件

Dump微信PC端的界面Duilib文件

DuiLib的Combo控件点击无响应的问题