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
  • 相关阅读:
    windows安全实验
    ping 命令的禁止 以及密码的攻破
    网络基础
    html 中间件
    js php BurpSuite v2.1
    网页标签,PHPstudy
    说说text_line_orientation算子的巧妙应用
    说说C#进行数字图像处理的方法
    微信张小龙产品30条
    说说几个常用的阈值分割算子
  • 原文地址:https://www.cnblogs.com/greenleaf1976/p/14786602.html
Copyright © 2011-2022 走看看