C++ 关于滚动条的滚动问题

SCROLLINFO scrollinfo;
GetScrollInfo(SB_HORZ, &scrollinfo, SIF_ALL);
switch (nSBCode)
{
case SB_LINERIGHT:
    if (scrollinfo.nPos < scrollinfo.nMax){
    scrollinfo.nPos += 10;
    SetScrollInfo(SB_HORZ, &scrollinfo);
    ScrollWindow(-10, 0);}
    break;
}

使用 GetScrollInfo 得到滚动信息 将信息保存于 SCROLLINFO 类的数据中

然后根据 nSBCode 来判断是哪个滚动条的哪个动作,做了调整

下面列出滚动的相关函数

afx_msg void OnHScroll(
   UINT nSBCode,
   UINT nPos,
   CScrollBar* pScrollBar
);

各个参数的意义:

nSBCode
      指定指示用户滚动请求的滚动条代码。 此参数可以是下列值之一:
      SB_LEFT 滚动到最左侧。
      SB_ENDSCROLL 结束滚动。
      SB_LINELEFT 滚动。
      SB_LINERIGHT 滚动权限。
      SB_PAGELEFT 滚动一页。
      SB_PAGERIGHT 滚动一页权限。
      SB_RIGHT 滚动到最右边。
      SB_THUMBPOSITION 为绝对位置的滚动。         当前位置由 nPos 参数指定。
      SB_THUMBTRACK 拖动到指定位置的滚动框。 当前位置由 nPos 参数指定。
nPos
      如果滚动条代码是 SB_THUMBPOSITION 或 SB_THUMBTRACK,指定滚动框位置;否则,未使用。 基于初始滚动大小,nPos 可以为负的,因此如果需要,转换到 int。
pScrollBar
      如果滚动消息来自滚动条控件,其中包含指向该控件。 //如果是手动添加的滚动控件
      如果用户单击窗口滚动条,此参数是 NULL。
      指针可能是瞬态的,不应存储以供将来使用。

时间: 2024-08-29 04:48:02

C++ 关于滚动条的滚动问题的相关文章

笔记-[js兼容]-滚动条的滚动距离的兼容性问题解决方法。

在我们操作JS实现些效果的时候,可能会涉及到滚动条滚动距离的问题; 在IE和非IE下是存在兼容性问题的 在IE下支持:document.body.scrollTop(scrollLeft);//在ie下获取滚动条距离的属性 在非IE下支持:document.documentElement.scrollTop(scrollLeft);//在非ie下获取滚动条距离的属性 代码兼容: var scrollTop;//定义一个变量名为scrollTop为滚动条的距离 滚动高度 :  var scroll

JScrollPane控件中添加其他控件的问题&&JScrollPane设置滚动条&&调整滚动速度

如果要在JScrollPane控件中添加其他控件,不能用下面这种方法 JScrollPane j = new JScrollPane();j.add(new JButton("点击")); 只能通过以下方法添加 JScrollPane j = new JScrollPane(new JButton("点击")); 或者 JScrollPane j = new JScrollPane();j.getViewport().add(new JButton("点击

CCScrollView添加滚动条和滚动背景

cocos2d-X里提供的CCScrollView里并没有提供滚动条和滚动条背景,我对它进行了一些修改,所用的cocos2d-x 版本为3.0 使用方法 CCBarScrollView* scrollView = CCBarScrollView::create(); scrollView->initWithViewSize((Size(280.0f,150.0f))); scrollView->setContentSize(Size(280,150*10.0f)); scrollView-&g

C#超简单方法实现两个richtextbox控件滚动条同步滚动

此文章属于作者原创,转载请注明,谢谢 有时候我们需要实现对照文章等,往往将文本放到两个richtextbox控件中,但是,如果我们需要同步滚动查看,来达到更好的观看效果. 当然,传统的方法重载控件或者自定义控件都可以达到目的,但是对于新手或者想仅仅只用一次这个控件的人来说,是非常麻烦的.所以,接 下来我来提供一种简单快捷的方法来实现:richtextbox滚动条同步的功能. 首先,我们在winform窗体创建两个richtextbox控件 下面介绍两个方法,我经常用到 第一个方法,获得当前鼠标所

WPF RichTextBox滚动条自动滚动实例、文本自动滚动实例

说明:1.后台代码添加测试 数据 2.使用 richTextBox.ScrollToVerticalOffset()方法,滚动竖直方向滚动条位置 3.使用定时器DispatcherTimer,修改页面显示数据 4.自己计算处理,已经滚动的高度位置 Xaml代码: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="205*"/> <ColumnDefinition Width=&qu

判断滚动条是否滚动到最底端

条件: $("div")[0].scrollTop + $("div").height() == $("div")[0].scrollHeight 完整滚动事件: var nScrollHight = 0;  var nScrollTop = 0; var nDivHight = $(".div").height(); $(".div").scroll(function() {       nScrollH

让DIV的滚动条自动滚动到最底部 - 3种方法

要制作一个在线聊天的程序,在做最后的修饰时,需要对获得的信息即时滚动以保证用户总能看到最新消息. 聊天程序是基于AJAX设计的,没有用框架,消息容器是一个DIV,所以问题就在于如何控制DIV的滚动条. 但同样的代码拿到我这里却完全失效,又仔细查了下资料说XHTML标准下scrollTop的值恒为0,解决办法是使用 document.documentElement.scrollTop代替document.body.scrollTop,讲了半天所解决的是整个页 面的滚动条.这个方法我是用不了了,因为

css控制背景图像不随滚动条的滚动而滚动

这几天在写一个demo,设置背景图像, background: url("../images/bg.jpg") repeat ; 在使用 $(window).scroll(function() { ....}); 监听滚动条时,在google下正常运行,背景图像没有异常 在ie.360.火狐下滚动滚动条时,背景图像一闪一闪的,很难受. 百度:说需要调显示器的监视器的屏幕刷新频率 > 70 Hz . 可是我的电脑只有60Hz ,那么问题来了,很多小伙伴的电脑或许跟我的一样,那怎么办

判断DataGridView滚动条是否滚动到当前已加载的数据行底部

private void dataGridView1_Scroll(object sender, ScrollEventArgs e) {   if (e.ScrollOrientation == ScrollOrientation.VerticalScroll &&        (e.NewValue + dataGridView1.DisplayedRowCount(false) == dataGridView1.Rows.Count))//垂直滚动条滚动到底部,数据为加载完,则再次