首页 > 其他分享 >MFC 滑块控件简单使用

MFC 滑块控件简单使用

时间:2024-01-27 20:33:25浏览次数:42  
标签:case 控件 MFC 滑块 pos break nPos sb

▲ 关联值

在滑块的父窗体 Dlg 中,BOOL CMFCApplication1Dlg::OnInitDialog() 初始化:

m_pos 关联 Textbox,m_sb 关联水平滑块。

    // 设置编辑区默认
    m_pos = 50;
    UpdateData(FALSE);

    // 设置滑块范围
    m_sb.SetScrollRange(0, 100);
    // 设置滑块位置
    m_sb.SetScrollPos(m_pos);

在滑块的父窗体 Dlg 中, ON_WM_HSCROLL()消息。

// 父窗口  滑块处理
void CMFCApplication1Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
    if (pScrollBar == &m_sb) // 判断对应滑块
    {
        switch (nSBCode) //判断滚动条的哪一部分
        {
        case SB_THUMBPOSITION: //滑块位置
        {
            m_sb.SetScrollPos(nPos);
            m_pos = nPos;
            UpdateData(FALSE);
        }
        break;
        case SB_LINELEFT: //向左的箭头
        {
            int p = m_sb.GetScrollPos() - 1; // 不能用 nPos,这个是点击完成后才有的。
            m_pos = p > 0 ? p : 0;
            m_sb.SetScrollPos(m_pos);
            UpdateData(FALSE);
        }
        break;
        case SB_LINERIGHT: //向右的箭头
        {
            int p = m_sb.GetScrollPos() + 1; // 不能用 nPos,这个是点击完成后才有的。
            m_pos = p > 100 ? p : 0;
            m_sb.SetScrollPos(m_pos);
            UpdateData(FALSE);
        }
        break;
        case SB_PAGELEFT: //箭头和滑块之间左边
            break;
            //箭头和滑块之间右边
        case SB_PAGERIGHT:
            break;
        default:
            break;
        }
    }

    CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}

上面的 case 分别判断点击在哪一个位置,分别做相应的处理。

标签:case,控件,MFC,滑块,pos,break,nPos,sb
From: https://www.cnblogs.com/huvjie/p/17991890

相关文章

  • MFC 文件 File 序列化和反序列化
    //写文件voidCMainFrame::OnCarchiveWrite(){ //TODO:在此添加命令处理程序代码 /* a)创建文件对象CFile b)以写方式打开文件CFile::Open c)创建序列化对象,并且和文件关联在一起CArchive CArchive::store把数据保存到归档文件中。允许CFile写操作。 d)......
  • MFC Tab 标签控件
    ▲提升类▲两个dlg类,把边框去掉,把样式改成Child主Dlg头文件三个成员变量:private: CTabSheetm_tabCtrl; MyDlg1dlg1; MyDlg2dlg2;BOOLCMy02_TabCtrlDlg::OnInitDialog()中: //给tab控件添加对话框 //对话框设置为子对话框,默认是单独对话框 m_tabCtrl.AddPa......
  • MFC TreeView 控件的基本认识
    ▲树控件OnInitDialog()里面的一些基础操作。BOOLCMFCApplication1Dlg::OnInitDialog(){CDialogEx::OnInitDialog();//将“关于...”菜单项添加到系统菜单中。//IDM_ABOUTBOX必须在系统命令范围内。ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTB......
  • MFC 模态对话框
    Frame消息:BEGIN_MESSAGE_MAP(CMainFrame,CFrameWnd)ON_WM_CREATE()ON_COMMAND(ID_DIALOG_EXEC,&CMainFrame::OnDialogExec)ON_COMMAND(ID_DIALOG_SHOW,&CMainFrame::OnDialogShow)ON_COMMAND(ID_DIALOG_32773,&CMainFrame::OnDialog3277......
  • MFC 右击菜单 右键菜单
    点击鼠标左键会出现弹式菜单:▲弹出菜单//鼠标左键按下voidCMy05_MenuView::OnLButtonDown(UINTnFlags,CPointpoint){//获取主菜单//CMenu*menu=GetMenu();//这个会直接报错//创建菜单项需要新创建一个,不能再视图直接获取框架的那个菜单CM......
  • MFC 根据定时器 ICON 移动 定时器的应用
    ▲会从做向右跑动构造函数:voidCMFCApplication1View::OnDraw(CDC*pDC){CMFCApplication1Doc*pDoc=GetDocument();ASSERT_VALID(pDoc);if(!pDoc)return;//绘制代码pDC->DrawIcon(x1,y1,icon[0]);pDC->DrawIcon(x2,y2+50,......
  • MFC 动态图标切换
    主要是学会获取应用实例,然后是定时器的使用。▲会一直变动,4个轮流滚。标题是属于框架的。头文件:private:HICONicon[4];构造函数:CMainFrame::CMainFrame()noexcept{//加载图标//获取应用程序icon[0]=AfxGetApp()->LoadIconW(IDI_ICON1);......
  • MFC 菜单路由事件,按钮可用不可用
    点击b会切换a可用状态:添加Menu选项a对应IDID_DEMO_A,b对应IDID_DEMO_B。弹式菜单无法编辑ID。▲右键添加事件处理程序▲路由传递路径frame给到view如果view处理好了,就返回给frame;如果没处理的话,view会给这个路由消息给doc,如果doc没有处理,再返回给......
  • MFC 定时器的简单用法
    View下两个消息事件:ON_WM_CREATEON_WM_TIMERBEGIN_MESSAGE_MAP(CMFCApplication1View,CView)//标准打印命令ON_COMMAND(ID_FILE_PRINT,&CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_DIRECT,&CView::OnFilePrint)ON_COMMAND(ID_FILE_PRINT_PREVIEW,&a......
  • MFC 插入符输入文字
    在View中,三个消息事件:BEGIN_MESSAGE_MAP(CMFCApplication1View,CView) //标准打印命令 ON_COMMAND(ID_FILE_PRINT,&CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT,&CView::OnFilePrint) ON_COMMAND(ID_FILE_PRINT_PREVIEW,&CView::OnFilePrintPreview)......