MFC中如何设置滚动条位置

想根据文本内容设置滚动条的位置,应该如何编写程序。... 想根据文本内容设置滚动条的位置,应该如何编写程序。 展开
 我来答
wsj99868900
推荐于2017-12-16 · TA获得超过5712个赞
知道小有建树答主
回答量:250
采纳率:60%
帮助的人:47.4万
展开全部
  1. 获取文本位置nCurpos

  2. pScrollBar->SetScrollPos(nCurpos);                              // 更新滑块

    其中,pScrollBar是滚动条指针

  3. 上述代码需要在OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)函数中书写

更多追问追答
追问
OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)函数怎么添加到MyDlg.CPP中呢?
希望大侠给个详细的编程过程。谢谢。
追答
首先,需要在消息映射中添加如下代码
BEGIN_MESSAGE_MAP(YUVviewerDlg, CDialog)
ON_WM_HSCROLL()
END_MESSAGE_MAP()
其次,由于该事件不会随着控件的双击,而自动生成,你必须自己写,在你说的MyDlg.cpp文件中函数体如下:

void MyDlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{

pScrollBar->GetScrollRange(&nMin, &nMax); // 滚动条范围
nCurpos = pScrollBar->GetScrollPos(); // 当前值

//获取文本位置nCurpos
pScrollBar->SetScrollPos(nCurpos); // 更新滑块
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
UpdateData(FALSE);
}

先试一试吧
快乐的跳跳123
2013-06-26 · TA获得超过128个赞
知道小有建树答主
回答量:155
采纳率:0%
帮助的人:159万
展开全部
m_edit.LineScroll(m_edit.GetLineCount());//滚动条置底
m_edit是EDIT的控制型变量,参数int型为滚动到第几行。
追问
如何设置或者读取滚动条的大小呢?
追答
int nVertPos = GetDlgItem(IDC_EDIT1)->GetScrollPos(SB_VERT);获取当前垂直滚动条的位置,大小是edit默认的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du瓶邪
推荐于2016-03-01 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2943万
展开全部
以对话框工程为例:
// .h
protected:
HICON m_hIcon;
int m_sbVertLen;
int m_sbHorzLen;
// cpp
// TODO: Add extra initialization here
CRect rc;
GetClientRect(&rc);
m_sbVertLen=rc.Height()-20;// sb width
m_sbHorzLen=rc.Width()-20; // sb height
SetScrollRange(SB_VERT, 0, 0);
SetScrollRange(SB_HORZ, 0, 0);
//
void CCheckCursorDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
CRect rc;
GetClientRect(&rc);
int vert=m_sbVertLen-rc.Height();
int horz=m_sbHorzLen-rc.Width();
SetScrollRange(SB_VERT, 0, vert >0 ? vert: 0);
SetScrollRange(SB_HORZ, 0, horz >0 ? horz: 0);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式