最近新开发的项目中,页面控件太多,子对话框的长度明显大于主对话框,嵌入到主对话框后,会覆盖主对话框页面,需要实现子对话框页面的滚动,网上查了很多方法,大多需要拖动滑块,实现滚动,没有响应鼠标滚动的,在此记录一下,参考博客[MFC] 对话框自带滚动条的使用_丶布布的博客-优快云博客_mfc 滚动条
1.添加消息响应函数OnVScroll,和OnMouseWheel
2.在对话框初始函数中增加
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
//设置滚动条
SCROLLINFO scrollinfo;
GetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);
scrollinfo.nMin = 0;
scrollinfo.nPage = 50; //设置滑块大小
scrollinfo.nMax = 112; //设置滚动条的最大位置
SetScrollInfo(SB_VERT, &scrollinfo, SIF_ALL);
scrollinfo.nPage、scrollinfo.nMax可以根据自己的具体对话框大小进行调整
3.