mfc界面设置滚动条,mfc 分割窗口滚动条怎么去除

首页 > 实用技巧 > 作者:YD1662023-05-07 11:45:45

滚动条CScrollBar

CScrollBar是滚动条类,滚动条分为水平滚动条(Horizontal ScrollBar)和垂直滚动条(Vertical ScrollBar)。滚动条中包括一个滚动块,用于标识滚动条当前滚动的位置。

mfc界面设置滚动条,mfc 分割窗口滚动条怎么去除(1)

初始化滚动条

初始化滚动条使用结构体SCROLLINFO,设置范围、初始位置等信息。

typedef struct tagSCROLLINFO { UINT cbSize; UINT fMask; int nMin; int nMax; UINT nPage; int nPos; int nTrackPos; } SCROLLINFO, *LPSCROLLINFO;

OnInitDialog()代码:

SCROLLINFO si = { 0 }; si.cbSize = sizeof(si); si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS; si.nMin = 0; si.nMax = 100; si.nPage = 10; si.nPos = 30; m_scrollbar.SetScrollInfo(&si); m_static_scrollbar_pos = si.nPos; UpdateData(FALSE);

滚动条范围0~100,初始位置设置为30。

给对话框添加滚动事件

mfc界面设置滚动条,mfc 分割窗口滚动条怎么去除(2)

注意:窗口在对话框上点击鼠标右键-选择类向导。

设置左右箭头移动1个单位,翻页移动10个单位。

void CDemoDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar) { SCROLLINFO si = g_si; pScrollBar->GetScrollInfo(&si); int new_pos = si.nPos; switch (nSBCode) { case SB_THUMBTRACK: new_pos = nPos; break; case SB_LINELEFT: new_pos--; break; case SB_LINERIGHT: new_pos ; break; case SB_PAGELEFT: new_pos -= si.nPage; break; case SB_PAGERIGHT: new_pos = si.nPage; break; default: break; } pScrollBar->SetScrollPos(new_pos); m_static_scrollbar_pos = new_pos; UpdateData(FALSE); CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar); }

mfc界面设置滚动条,mfc 分割窗口滚动条怎么去除(3)

视频讲解

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.