Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >richedit设置滚动条的位置和更新内容

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

作者头像
全栈程序员站长
发布于 2022-07-06 09:40:11
发布于 2022-07-06 09:40:11
2K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是全栈君

需要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.

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 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;
        .
        .
        .
    }

实现本文功能:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//保存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);

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

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年1月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MFC 控件编程之水平滚动条跟垂直滚动条
  首先在操作滚动条的时候.我们要知道滚动条的一些属性. 比如我们要设置 最大值 最小值. 以及每次递增的值是多少.都要设置.
IBinary
2019/05/25
2.8K0
Windows程序设计——窗口键盘消息滚动事件[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171006.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/23
5410
【读书笔记】Windows程序设计5
与从BeginPaint函数返回的设备句柄不同,从GetDC返回的设备句柄中的裁剪区域是整个客户区,而不仅仅
zhang_derek
2022/12/21
2.5K0
如何通过自定义MessageFilter的方式利用按键方式操作控件滚动条[附源代码]
很长一段时间内,一直在做一个SCSF(Smart Client Software Factory)的项目,已经进入UAT阶段。最近,用户提出了一个要求:需要通过按键方式来控制竖直滚动条。具体来讲就是说,如果一个容器内容过多,用户可以通过按键PageUp和PageDown来控制上下的滚动。刚开始,我试图采用注册事件的方式来实现,但是效果不理想,一来是没有一个单一的地方来对所有相关空间进行事件注册操作,二来如果容器被子控件完全遮挡,容器空间的事件将不会正常出发。有个同事提示采用自定义MessageFilter的
蒋金楠
2018/01/16
8930
如何通过自定义MessageFilter的方式利用按键方式操作控件滚动条[附源代码]
windows程序设计-第四章 system2.c 新增滚动条功能
新添加的滚动条功能,首先就是要在createWindow的时候,修改参数风格模式 hwnd = CreateWindow (szAppName, TEXT ("Get System Metrics No. 2"), WS_OVERLAPPEDWINDOW | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT, C
用户1154259
2018/01/17
7090
windows程序设计-第四章 system2.c 新增滚动条功能
VScroll:基于Vue美化滚动条组件|vue.js自定义滚动条
VScroll 一款基于vue2.x构建的虚拟替代系统原生滚动条组件。支持自定义是否原生滚动条、自动隐藏、滚动条大小及颜色等功能。拥有完美顺滑的滚动体验!
andy2018
2020/12/01
20.1K1
VScroll:基于Vue美化滚动条组件|vue.js自定义滚动条
MFC Windows 程序设计->消息反射
  父窗口将控制子窗口发给它的通知消息,首先反射回子窗口进行处理(即给控制子窗口一个机会,让控制子窗口处理此消息),这样通知消息就有机会能被子窗口自身进行处理。
井九
2024/10/12
930
漏洞分析丨cve20144113
Microsoft Windows下的 win32k.sys是Windows子系统的内核部分,是一个内核模式设备驱动程序,它包含有窗口管理器、后者控制窗口显示和管理屏幕输出等。如果Windows内核模式驱动程序不正确地处理内存中的对象,则存在一个特权提升漏洞。成功利用此漏洞的攻击者可以运行内核模式中的任意代码。攻击者随后可安装程序;查看、更改或删除数据;或者创建拥有完全管理权限的新帐户。其中CVE-2014-4113就是Win32k.sys中的一个漏洞,该漏洞的根本问题是函数xxxMNFindWindowFromPoint的返回值验证不正确。xxxMNFindWindowFromPoint函数执行后返回win32k!tagWND的地址结构或错误代码-1,-5。在该函数后面将调用函数xxxSendMessage,xxxSendMessage把xxxMNFindWindowFromPoint的返回值作为参数传递。当xxxMNFindWindowFromPoint返回win32k!tagWND地址的时候程序正常执行,但当返回-1,-5的时候传递给xxxSendMessage将造成蓝屏。
极安御信安全研究院
2023/04/20
6040
漏洞分析丨cve20144113
WebBrowserWithUI[支持设置滚动条]
Delphi自带的WebBrowser是不含有滚动条设置的。下面的代码中加入了对滚动条的设置,如果是Delphi 7可以直接将下面的代码保存为pas文件进行安装,如果是2010则猛击此处下载我打包之后的控件包进行安装。 8) 安装之后可以通过上图的属性页面设置滚动条属性。
obaby
2023/02/24
2940
Vue3.0仿el-scrollbar美化滚动条组件
三天前有给大家分享一个Vue3 PC网页端自定义弹窗v3layer。这次带来的是全新开发的Vue3.0自定义模拟滚动条组件v3scroll。支持自定义滚动条大小、颜色、层叠及鼠标移开是否自动隐藏等功能。
andy2018
2021/01/08
3.4K0
Vue3.0仿el-scrollbar美化滚动条组件
用vc++做滚动条控件
  首先用应用向导产生一名为scro的基于对话框的应用,再利用对话框编辑器加入两个一样的水平滚动条,两个滚动条的id分别取idc—scr1和idc—scr2,结果如下图,将其作为本文的示例。   对话
用户1154259
2018/01/17
7930
用vc++做滚动条控件
svelte3.x模拟滚动条组件SvelteScrollbar
前几天有给大家分享一个svelte.js自定义网页版弹窗组件svelte-layer。今天再来分享一个最新基于svelte.js开发的网页虚拟美化滚动条组件svelte-scrollbar。
andy2018
2022/05/09
1.9K0
ios下滚动条默认显示
该文讲述了如何实现ios下滚动条默认显示,以及需要注意的样式和兼容性问题,并提供了一个demo示例。
练小习
2017/12/29
5.6K0
ios下滚动条默认显示
C#开发: 通信篇-串口调试助手
-----------------------------------------------------------------------------------------------以上需要嵌入视频演示
杨奉武
2020/03/03
5.9K0
CSS设置浏览器滚动条样式及隐藏滚动条
虽然大多数人不会关注到滚动条的样式,但是有一些网站还是对滚动条进行了优化,比如网易邮箱。我们可以用 CSS 来设置浏览器的滚动条样式,下面整理一下 CSS 滚动条的几个属性及代表的意思。
德顺
2019/11/12
21.2K0
windows程序设计-第四章 system1.c
/*---------------------------------------------------- SYSMETS1.C -- System Metrics Display Program No. 1 (c) Charles Petzold, 1998 ----------------------------------------------------*/ #define WINVER 0x0500 #include <windows.h> #in
用户1154259
2018/01/17
7710
windows程序设计-第四章 system1.c
(六十九)c#Winform自定义控件-垂直滚动条
GitHub:https://github.com/kwwwvagaa/NetWinformControl
冰封一夏
2019/09/29
1.8K0
(六十九)c#Winform自定义控件-垂直滚动条
JS - 兼容到ie7的自定义样式的滚动条封装
demo: html: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="author"
xing.org1^
2018/10/10
5.1K1
JS - 兼容到ie7的自定义样式的滚动条封装
iScroll click事件触发两次的解决方案
iScroll呢其实是截获了点击浏览器时的touchstart和touchend事件。在touchend的时候使用js去触发元素的onclick事件(_end这个函数)。而在实际操作中,先执行了touchend,然后再执行了一次onclick的相关函数。这样就形成了头疼的一次点击两次触发!
White feathe
2021/12/08
1.3K0
Div Scroll Bar (用层模拟滚动条)
对Div的盒模型以及Css控制定位都不熟,所以遇到了不少BT问题……好在最终突破了种种困难,基本实现了自己想要的效果。 说明: 最大的突破是通过了 xhtml1-transitional.dtd 验证,可以在xhtml文档里正常使用. 采用相对定位,使用起来更灵活,可以放在页面任何地方而不用改程序. 结构规范,容易扩展. 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR
张善友
2018/01/19
1.5K0
相关推荐
MFC 控件编程之水平滚动条跟垂直滚动条
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验