对话框设置滚动条
1. 在 OnInitDialog()函数中,添加以下代码
//在 OnInitDialog 里添加如下代码为对话框创建一个垂直滚动条和水平滚动条
//获取窗口的大小
CRect rc;
GetClientRect(&rc);
const SIZE sz = { rc.right - rc.le!, rc.bo$om - rc.top };
//垂直滚动条
SCROLLINFO vsi;
vsi.cbSize = sizeof(SCROLLINFO);//必须
vsi.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;
vsi.nPos = 1;//滚动条的初始位置
vsi.nMin = 0;//滚动条所能滚动的最小值
vsi.nMax = sz.cy+500; //滚动条所能滚动的最大值,可以根据实际情况设置
vsi.nPage = sz.cy;//一页的大小
SetScrollInfo(SB_VERT, &vsi, FALSE); //此函数将产生一个垂直滚动条
//水平滚动条
SCROLLINFO hsi;
hsi.cbSize = sizeof(SCROLLINFO);//必须
hsi.fMask = SIF_PAGE | SIF_POS | SIF_RANGE;
hsi.nPos = 1;//滚动条的初始位置
hsi.nMin = 0;//滚动条所能滚动的最小值
hsi.nMax = sz.cx+100; //滚动条所能滚动的最大值,可以根据实际情况设置
hsi.nPage = sz.cx;//一页的大小
SetScrollInfo(SB_HORZ, &hsi, FALSE); //此函数将产生一个水平滚动条
2. 在对话框头文件(.h)中加入以下函数
//获取滚动条的位置
//parameters:
//int nBar -- 滚动条类型(垂直或者水平),垂直为 SB_VERT,水平为 SB_HORZ
//UINT nSBCode -- 滚动条触发的消息
//return values -- 返回滚动条的位置
int GetScrollPos(int nBar, UINT nSBCode);
//根据滚动条的位置滚动界面
//parameters:
//int nBar -- 滚动条类型(垂直或者水平),垂直为 SB_VERT,水平为 SB_HORZ
//int nPos -- 滚动条的位置
void ScrollClient(int nBar, int nPos);
//设置滚动条滚动,以及滚动的时候界面跟着滚动
//parameters:
//int nBar -- 滚动条类型(垂直或者水平),垂直为 SB_VERT,水平为 SB_HORZ
//UINT nSBCode -- 滚动条触发的消息
void Scroll(int nBar, UINT nSBCode);
3. 在对话框源文件(.cpp)中实现以下函数
评论0