richedit设置滚动条的位置和更新内容

richedit设置滚动条的位置和更新内容

大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。

需要txt发现读者richedit的scrollbar位置(为了便于下一次读,直接访问与上次读取下一个读取位置)不值得治疗,采用GetScrollPos、SetScrollPos你可以设置scorllbar位置值。可是!

SetScorllPos调用后仅仅更新了scorllbar的位置richedit的内容没得到更新,google一下没有个现成的解决。仅仅得msdn。

WM_VSCROLL重点标记一下:

SB_THUMBPOSITION

The user has dragged the scroll box (thumb) and released the mouse button. The HIWORD indicates the position of the scroll box at the end of the drag operation.

However, because the 
SetScrollInfo

SetScrollPos

SetScrollRange

GetScrollInfo
,
GetScrollPos
, and 
GetScrollRange
 functions support 32-bit scroll bar position data, there is a way to circumvent the 16-bit barrier of the 
WM_HSCROLL
 and 
WM_VSCROLL
 messages. See
GetScrollInfo
 for a description of the technique.


GetScrollInfo重点标记一下:

SIF_TRACKPOS

Copies the current scroll box tracking position to the nTrackPosmember of the SCROLLINFO structure pointed to by lpsi.

 

Remarks

The GetScrollInfo function enables applications to use 32-bit scroll positions. Although the messages that indicate scroll bar position, WM_HSCROLL and WM_VSCROLL, provide only 16 bits of position data, the functions SetScrollInfo and GetScrollInfo provide 32 bits of scroll bar position data. Thus, an application can call GetScrollInfo while processing either theWM_HSCROLL or WM_VSCROLL messages to obtain 32-bit scroll bar position data.

To get the 32-bit position of the scroll box (thumb) during a SB_THUMBTRACK request code in a WM_HSCROLL or WM_VSCROLL message, call GetScrollInfo with the SIF_TRACKPOS value in the fMask member of the SCROLLINFO structure. The function returns the tracking position of the scroll box in the nTrackPos member of the SCROLLINFO structure. This allows you to get the position of the scroll box as the user moves it. The following sample code illustrates the technique.

SCROLLINFO si;
case WM_HSCROLL:
    switch(LOWORD(wparam)) {
        case SB_THUMBTRACK:
          // Initialize SCROLLINFO structure
 
            ZeroMemory(&si, sizeof(si));
            si.cbSize = sizeof(si);
            si.fMask = SIF_TRACKPOS;
 
          // Call GetScrollInfo to get current tracking 
          //    position in si.nTrackPos
 
            if (!GetScrollInfo(hwnd, SB_HORZ, &si) )
                return 1; // GetScrollInfo failed
            break;
        .
        .
        .
    }

实现本文功能:
//保存scrollbar位置
  SCROLLINFO Info={0};
  Info.cbSize=sizeof Info;
  Info.fMask=SIF_TRACKPOS;
  GetScrollInfo(RichEdit1->Handle,SB_VERT,&Info);
  std::auto_ptr<TIniFile> ptrIni(new TIniFile(ExtractFilePath(Application->ExeName)+"Config"));
  ptrIni->WriteInteger("Reader","ScorllPos",Info.nTrackPos);




//设置scrollbar位置
    std::auto_ptr<TIniFile> ptrIni(new TIniFile(ExtractFilePath(Application->ExeName)+"Config"));
    int pos=ptrIni->ReadInteger("Reader","ScorllPos",0);
    SendMessage(RichEdit1->Handle,WM_VSCROLL,MAKEWPARAM(SB_THUMBPOSITION,pos),0);

版权声明:本文博主原创文章,博客,未经同意不得转载。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116881.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • (建议收藏)TCP协议灵魂之问,巩固你的网路底层基础

    (建议收藏)TCP协议灵魂之问,巩固你的网路底层基础

  • h5播放rtsp流_h5页面嵌入微信公众号

    h5播放rtsp流_h5页面嵌入微信公众号项目需求最近遇到一个新需求,将rtsp视频流接入h5页面中,rtsp是无法直接在h5页面上显示的,所以得通过一些手段将视频转成可以在h5上显示的格式;博主尝试过用nginx+ffmpeg转流,也尝试过用bilibili开源的flv.js转流;但最终效果都不太好,延迟高,卡顿时间长;后面发现一个神器VLC客户端,实时播放,完全不卡顿。前期准备VLC下载链接根据上方链接下载VLC客户端,根据自己的操作系统下载安装,博主使用的是windows10系统实际开发1.确保rtsp视频流可用,海康威视IP

  • 软件测试总结——常见的面试问题(一)

    软件测试总结——常见的面试问题(一)1.软件测试级别?单元测试:单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。Findyou又称为模块测试,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。(测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试)集成测试:(集成测试也称联合测试、组装测试,将程序模块采用适当的集成策略组装起…

  • 一致性Hash算法以及java实现「建议收藏」

    一致性Hash算法以及java实现「建议收藏」目前我们很多时候都是在做分布式系统,但是我们需把客户端的请求均匀的分布到N个服务器中,一般我们可以考虑通过Object的HashCodeHash%N,通过取余,将客户端的请求分布到不同的的服务端。但是在分布式集群中我们通常需要添加或删除服务器,所以通过取余是不行的。一致性Hash就是为了解决这个问题。  ConsistentHashing一致性Hash的原理  1、环型Hash空间…

  • C#中FileStream与StreamReader/StreamWriter区别

    C#中FileStream与StreamReader/StreamWriter区别FileStreamFileStream类不是静态类,表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。使用时需要创建对象,FileStream类既可以对文本文件进行读也可以对多媒体文件进行写,以字节数组的形式进…

  • 项目范围管理计划模板[通俗易懂]

    项目范围管理计划模板[通俗易懂]XX项目项目范围管理计划     文档编号:文档信息:文档名称:文档类别:工程类密   级:内部基准:版本信息:1.0建立日期:创建人:批准人:批准日期: 保管人:存放位置:配置库编辑软件:MicrosoftOffice2007中文版     文档修订记录

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号