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);

  • 相关阅读:
    省常中模拟 Test4
    省常中模拟 Test3 Day1
    省常中模拟 Test3 Day2
    省常中模拟 Test1 Day1
    树型动态规划练习总结
    noip2010提高组题解
    noip2003提高组题解
    noip2009提高组题解
    noip2004提高组题解
    noip2002提高组题解
  • 原文地址:https://www.cnblogs.com/cutepig/p/1744360.html
Copyright © 2011-2022 走看看