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

  • 相关阅读:
    python中的 ' ' 和 " "
    Socket编程, 在server端read()函数调用后显示错误:Transport endpoint is not connected (犯了低级错误)
    我也终于申请了自己的博客。
    山之高
    策略模式-Java实现
    SQL事务的四种隔离级别和MySQL多版本并发控制
    用JAMES实现自己的邮件服务器
    windows mysql 自动备份的几种方法
    Hibernate常见配置详细解释
    慕课网-Linux达人养成计划学习笔记
  • 原文地址:https://www.cnblogs.com/cutepig/p/1744360.html
Copyright © 2011-2022 走看看