zoukankan      html  css  js  c++  java
  • How to create a resizeable dialog box with scroll bars in Visual C++

    How to create a resizeable dialog box with scroll bars in Visual C++

    http://support.microsoft.com/kb/262954/en-us/

    http://msdn.microsoft.com/en-us/library/bb787531%28v=VS.85%29.aspx#wm_paint 

     GetClientRect(m_rect);
    if(m_rect.bottom<rect.bottom)
    {
        m_rect.bottom = rect.bottom-m_rect.Height();
        SetScrollRange(SB_VERT,0,m_rect.bottom);
        ShowScrollBar(SB_VERT, TRUE);
    }

    void CUsageDisplayTab::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
    {
        // TODO: Add your message handler code here and/or call default
        // TODO: Add your message handler code here and/or call default
        int nDelta;
        int nMaxPos = m_rect.Height() /*- m_nCurHeight*/;

        switch (nSBCode)
        {
        case SB_LINEDOWN:
            if (m_nScrollPos >= nMaxPos)
                return;
            nDelta = min(nMaxPos/100,nMaxPos-m_nScrollPos);
            break;

        case SB_LINEUP:
            if (m_nScrollPos <= 0)
                return;
            nDelta = -min(nMaxPos/100,m_nScrollPos);
            break;

             case SB_PAGEDOWN:
            if (m_nScrollPos >= nMaxPos)
                return;
            nDelta = min(nMaxPos/10,nMaxPos-m_nScrollPos);
            break;

        case SB_THUMBPOSITION:
            nDelta = (int)nPos - m_nScrollPos;
            break;

        case SB_PAGEUP:
            if (m_nScrollPos <= 0)
                return;
            nDelta = -min(nMaxPos/10,m_nScrollPos);
            break;
        
             default:
            return;
        }
        m_nScrollPos += nDelta;
        SetScrollPos(SB_VERT,m_nScrollPos,TRUE);
        ScrollWindow(0,-nDelta);
        CTabPageSSL::OnVScroll(nSBCode, nPos, pScrollBar);
    }


    dynamic created button

    m_cChkbx[i] = new CButton;
    m_cChkbx[i]->Create("",WS_CHILD ,rect ,this, GET_CHEKBOX_ID(i));
    m_cChkbx[i]->SetFont(pChkFont);
    m_cChkbx[i]->SetButtonStyle(BS_AUTOCHECKBOX);
    m_cChkbx[i]->ShowWindow(SW_SHOW);

  • 相关阅读:
    【pytest学习10】fixture参数化,fixture(params=data)装饰器的data是函数返回值yield request.param ,将带到下面调用为参数的函数中
    Pipfile 文件转换利器——pipfile-freeze
    npm的lock
    调试wmi连接主机进行监控
    RPC电源监控总结
    HTTP协议三次握手过程
    linux常用命令集
    Gym
    Gym
    实验2.2
  • 原文地址:https://www.cnblogs.com/cutepig/p/1744360.html
Copyright © 2011-2022 走看看