zoukankan      html  css  js  c++  java
  • Win32 滚动条控件

    1.创建控件

    HWND hScrollBar = ::CreateWindow(

            WC_SCROLLBAR,                           //控件类名

            NULL,                                   //窗口标题文本

            WS_VISIBLE | WS_CHILD | SBS_TOPALIGN,   //控件风格样式

            10, 100, 200, 40,                       //控件显示位置坐标

            m_hWnd,                                 //父窗口句柄

            (HMENU)IDC_SCROLLBAR1,                  //控件ID号

            m_hInstance,                            //程序实例句柄

            0);                                     //附加数据

             

    2.设置最小值和最大值(SBM_SETRANGE) 

    SendMessage(hScrollBar, SBM_SETRANGE, 0, 100);

    wParam:  为最小值

    lParam:     为最大值


    3.设置滑块的位置(SBM_SETPOS)

    SendMessage(hScrollBar, SBM_SETPOS, 1, TRUE);

    wParam:  为要设定的位置

    lParam:  TRUE为是否刷新窗口,FALSE为不刷新

    4.获得滑块当前位置(SBM_GETPOS)

    int pos = SendMessage(hCtrl, SBM_GETPOS, 0, 0);

    5.通知消息

    水平通知消息(WM_HSCROLL)

    垂直通知消息(WM_VSCROLL)

    水平通知消息示例:

    LRESULT MyDialog::OnhScroll(WPARAM wParam, LPARAM lParam)

    {

        int nSbCode = LOWORD(wParam);  //获得控件通知消息码

        HWND hCtrl = (HWND)lParam;    //控件句柄

        /*WORD lPos = HIWORD(wParam);*/只有拖动滑块时才有滑块当前位置信息

        int pos = SendMessage(hCtrl, SBM_GETPOS, 0, 0);  //获得当前滑块位置

        switch (nSbCode)

        {

        case SB_LINELEFT:  //点击左边按钮消息

            pos-=5;

            break;

        case SB_LINERIGHT:  //点击右边按钮消息

            pos+=5;

            break;

        case SB_PAGELEFT: //点击滑块左边滚动条空白翻页消息

            pos -= 20;

            break;

        case SB_PAGERIGHT:  //点击滑块右边空白处为翻页消息

            pos += 20;

            break;

            /*case SB_THUMBTRACK:  //拖动滑块时消息

                SendMessage(hCtrl, SBM_SETPOS, lPos, 1);

                return true;*/

        case SB_THUMBPOSITION:  //拖动滑块放开消息

            pos = HIWORD(wParam);   

            break;

        }

        SendMessage(hCtrl, SBM_SETPOS, pos, 1); //设置当前位置=pos,并重绘控件

        CString str;

        str.Format(TEXT("%d"), pos);

        SetDlgItemText(IDC_STATIC1, str);

        return LRESULT();

    }

      
    
    签名:GreenLeaf1976
  • 相关阅读:
    slurm.conf系统初始配置
    MySQL数据库服务器(YUM)安装
    Slurm任务调度系统部署和测试(源码)(1)
    并行管理工具——pdsh
    Munge服务部署和测试
    NTP服务部署和测试
    LDAP-openldap服务部署和测试(YUM安装)
    KVM虚拟机管理——虚拟机创建和操作系统安装
    KVM虚拟机管理——虚拟机克隆
    KVM虚拟化环境准备
  • 原文地址:https://www.cnblogs.com/greenleaf1976/p/14786602.html
Copyright © 2011-2022 走看看