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

  • 相关阅读:
    shell生成随机数 shell脚本生成随机数作为kafka的生产者
    使用Azkaban调度Spark任务
    Azkaban3.57.0的编译安装以及简单使用
    centos上安装gradle
    azkaban(版本2.5.0)安装
    261 相对布局之1— 相对布局的作用
    260 线性布局之3—线性布局案例演示
    259 线性布局之2—线性布局的使用
    258 线性布局之1—线性布局的作用
    257 布局基础之3—添加布局的方式
  • 原文地址:https://www.cnblogs.com/cutepig/p/1744360.html
Copyright © 2011-2022 走看看