首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MFC:在CRichEditCtrl中高亮显示一行一段时间,然后恢复

MFC(Microsoft Foundation Class)是微软公司开发的一套基于C++的应用程序框架,用于开发Windows平台上的图形用户界面(GUI)应用程序。MFC提供了一系列的类库和工具,简化了Windows应用程序的开发过程。

在CRichEditCtrl中高亮显示一行一段时间,然后恢复,可以通过以下步骤实现:

  1. 获取CRichEditCtrl控件的句柄或指针,例如:CRichEditCtrl* pRichEditCtrl = (CRichEditCtrl*)GetDlgItem(IDC_RICHEDIT_CTRL);
  2. 获取需要高亮显示的行的起始和结束位置,例如:int nStartChar, nEndChar; pRichEditCtrl->GetLineCharIndex(nLineNumber, nStartChar); pRichEditCtrl->GetLineCharIndex(nLineNumber + 1, nEndChar);其中,nLineNumber表示需要高亮显示的行号。
  3. 设置高亮显示的文本属性,例如:CHARFORMAT cf; cf.cbSize = sizeof(CHARFORMAT); cf.dwMask = CFM_COLOR; cf.crTextColor = RGB(255, 0, 0); // 设置为红色 pRichEditCtrl->SetSel(nStartChar, nEndChar); pRichEditCtrl->SetSelectionCharFormat(cf);
  4. 使用定时器,在一定时间后恢复原始文本属性,例如:SetTimer(ID_TIMER_RESTORE, nDuration, NULL); // nDuration为高亮显示的时间间隔 // 在WM_TIMER消息处理函数中恢复原始文本属性 void CMyDialog::OnTimer(UINT_PTR nIDEvent) { if (nIDEvent == ID_TIMER_RESTORE) { // 恢复原始文本属性 CHARFORMAT cf; cf.cbSize = sizeof(CHARFORMAT); cf.dwMask = CFM_COLOR; cf.crTextColor = RGB(0, 0, 0); // 设置为黑色 pRichEditCtrl->SetSel(nStartChar, nEndChar); pRichEditCtrl->SetSelectionCharFormat(cf); KillTimer(ID_TIMER_RESTORE); } CDialogEx::OnTimer(nIDEvent); }

以上是在MFC中实现在CRichEditCtrl中高亮显示一行一段时间,然后恢复的基本步骤。具体的实现方式可能会因具体需求而有所不同。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):提供弹性计算能力,满足各类业务需求。产品介绍链接
  • 腾讯云云数据库MySQL版:可靠、可扩展的关系型数据库服务。产品介绍链接
  • 腾讯云对象存储(COS):安全、高可靠、低成本的云端存储服务。产品介绍链接
  • 腾讯云人工智能:提供丰富的人工智能服务和解决方案,如图像识别、语音识别等。产品介绍链接
  • 腾讯云物联网通信(IoT Hub):连接海量设备,实现设备与云端的双向通信。产品介绍链接
  • 腾讯云区块链服务(BCS):提供一站式区块链解决方案,帮助企业快速搭建和部署区块链网络。产品介绍链接
  • 腾讯云视频处理(VOD):提供视频上传、转码、截图、水印等功能,满足视频处理需求。产品介绍链接
  • 腾讯云音视频通信(TRTC):提供实时音视频通信能力,支持多人音视频通话和互动直播。产品介绍链接
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

创建界面方法的讨论

然后,领导给我发了个 Masonry 库去看,依然是手写代码布局界面,但效率高了不少。...工作一段时间,看了很多博客,也看了一些书,发现用纯代码写界面的很少,于是就在 Google 上搜 Storyboards 有什么好处,最后发现了一篇非常好的文章。...同样的话题,唐巧的博客里,也讨论过这个问题:iOS 开发的争议(二) 其中比较有说服力的一段是他分析了100多个 App 包含 xib 文件的个数,大概推测出很多著名的 App 里大部分界面都是手写来完成的...纯代码写的界面容易控制,这个容易控制是说,你每增加一个控件,一个约束代码上就可以很直观的显示出来,因为每写一行代码你自己就会很清楚。...最最后,我想起来以前上学搞 MFC 的时候,那时候也有关于手写界面还是拖界面的讨论,当时一个很有说服力的评论是,手写界面可以锻炼你对 MFC 程序的理解,可能你还是无法知道 MFC 的实现原理,但你会很熟悉

74110

MFC拓展库】上海道宁与BCGSOFT合作为您带来专业的Micrisoft Windows开发业务组件

迄今为止,BCGSoft全球已经有10000多家客户,BCGSoft 和我们的产品ComponentSource畅销出版商和畅销产品名列前茅。...状态栏、应用程序按钮、后台视图和突出显示的GUI元5、素中使用强调色。...您可以选择日期范围并在每日、每周或每月视图中显示它们。复制/粘贴操作完全拖放支持(您可以一天内拖动约会或将它们放在日期选择器控件上)。...主要产品功能01、语法高亮支持BCGPEdit支持两个级别的高度可定制的语法突出显示。首先,您可以创建一个语法文件(XML 格式)来支持任何编程语言。其次,我们提供了一组虚拟功能。...Visual Studio 2008包含的新MFC版本基于 BCGControlBar Pro技术,但MFC版本不包含一些重要的库组件,例如图表、网格、日历、编辑器等。

5.5K20

IntelliJ Idea 常用快捷键列表

Ctrl+F7,可以查询当前元素在当前文件的引用,然后按 F3 可以选择 Ctrl+N,可以快速打开类 Ctrl+Shift+N,可以快速打开文件 Alt+Q,可以看到当前方法的声明 Ctrl+P,...+Up/Down,向上/下移动语句 F2 或 Shift+F2,高亮错误或警告快速定位 Tab,代码标签输入完成后,按 Tab,生成代码 Ctrl+Shift+F7,高亮显示所有该文本,按 Esc 高亮消失...Alt+F3,逐个往下查找相同文本,并高亮显示 Ctrl+Up/Down,光标中转到第一行或最后一行下 Ctrl+B/Ctrl+Click,快速打开光标处的类或方法(跳转到定义处) Ctrl+Alt+...Ctrl+Shift+R,路径替换 Ctrl+Shift+S,搜索结构 Ctrl+Shift+M,替换结构 Alt+F7,查找用法 Ctrl+Alt+F7,显示用法 Ctrl+F7,文件查找用法...Ctrl+Shift+F7,文件中高亮显示用法

38020

IDEA-常用快捷键列表

Ctrl+F7,可以查询当前元素在当前文件的引用,然后按 F3 可以选择 Ctrl+N,可以快速打开类 Ctrl+Shift+N,可以快速打开文件 Alt+Q,可以看到当前方法的声明 Ctrl+P,...+Up/Down,向上/下移动语句 F2 或 Shift+F2,高亮错误或警告快速定位 Tab,代码标签输入完成后,按 Tab,生成代码 Ctrl+Shift+F7,高亮显示所有该文本,按 Esc 高亮消失...Alt+F3,逐个往下查找相同文本,并高亮显示 Ctrl+Up/Down,光标中转到第一行或最后一行下 Ctrl+B/Ctrl+Click,快速打开光标处的类或方法(跳转到定义处) Ctrl+Alt+...Ctrl+Shift+R,路径替换 Ctrl+Shift+S,搜索结构 Ctrl+Shift+M,替换结构 Alt+F7,查找用法 Ctrl+Alt+F7,显示用法 Ctrl+F7,文件查找用法...Ctrl+Shift+F7,文件中高亮显示用法

84120

Android 基于RecyclerView实现的歌词滚动自定义控件

然后 onBindViewHolder() 的设置可以判断当前是否需要高亮显示。...这个要分为四种情况: 第一种: 当前歌词屏幕之外:由于我是打算将歌词移动到屏幕的第四个位置。 那么我就需要找到屏幕的第一个位置,还有当前显示的是哪一句歌词。...由于我是想要让他显示屏幕的第四行,所以是相差 currentWord + 5 – firstPosition 个位置 。 第二种: 当歌词第四行之前但是一行之后。...第三种: 当歌词第四行之后但是最后一行之前。 第四种: 当歌词最后一行之后。 其实我们就根据自己想要在显示第几行来判断需要移动多少个位置。...然后调用自动移动滚动方法和高亮方法。

1.6K10

不会vim?看这篇就够了!

因此只要学会使用vi编辑器后,无论什么版本的Linux系统下,我们都能在所有的文件“横着走” vim介绍: vi和vim都是Linux的编辑器,不同的是,vim更适用于coding,功能相较vi更加强大...本文概要 介绍vim编辑器,如何: 移动光标 切换模式 对文本进行删除、查找、替换、复制、粘贴 撤销文本的操作 ---- 一、vim三种模式 1、命令模式(打开文件默认进入的模式): 该模式下不能对文件直接编辑...作用:打开指定的文件 (2)#vim +数字 文件的路径 作用:打开指定的文件,并且将光标移动到指定行 (3)#vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词...) ④可视化删除 按键:ctrl + v(可视块),上下左右移动,按下D表示删除块的所有行,d表示删块的内容 4、撤销/恢复 ①撤销: 按键: u (undo) ②恢复: 按键:ctrl + r...表示强制退出,刚才做的修改操作不做保存 ⑤搜索/查找 输入:/关键词 搜索结果中切换上/下一个结果:N/n(next) 取消高亮可输入 :nohl (no highlight) ⑥替换(substitute

3.2K00

Linux下的文本编辑器介绍「建议收藏」

插入模式(文本的插入) i 光标之前插入; a 光标之后插入; I 光标所在行的行首插入; A 光标所在行的行末插入; o 光标所在的行的下面插入一行; O 光标所在的行的上面插入一行; s...,把光标行和上一行接在一起; 恢复修改及恢复删除操作 u 撤消修改或删除操作; 按ESC键返回Command(命令)模式,然后按u键来撤消删除以前的删除或修改;如果您想撤消多个以前的修改或删除操作,请按多按几次...打开可视模式,按ESC键,然后按v就进入可视模式; 可视模式为我们提供了极为友好的选取文本范围,以高亮显示屏幕的最下方显示有; — 可视 — 或 –VISUAL– 进入可视模式,我们就可以用前面所说的命令行模式的光标移动指令...SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示; %s /SEARCH/REPLACE 注:把文档中所有行的第一个SEARCH替换成REPLACE; %s /SEARCH/REPLACE...s /SEARCH/REPLACE/g 注:#号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE; 注:在这之中,g表示全局查找;我们注意到,就是没有替换的地方,也会把SEARCH高亮显示

2.5K20

CString 类的线程不安全问题

1 问题描述 CString 类线程不安全问题和解决过程,测试运行一段时间后,后台软件崩了,软件重启后,恢复正常,隔三四小时又出现异常,Debug模式下调用堆栈,发现问题出现在strname = pSystemInfo...-> szName 这一行。...多数情况下,比较简单的使用过程MFC 的这个 BUG 不会发作,也就是不会有内存泄露。 那什么时候 CString 会暴露出 BUG 呢?...CString 类的 Debug 版本和 Release 版本不完全一样,Debug 版本则直接分配( MFC Debug 版本有内存管理,主要是为了排错,内存泄漏等),CString 类 Release...版本会使用定长内存管理( CFixedAlloc 类),主要管理是4个长度的内存, CString类的Debug版本和Release版本不完全一样,Debug版本则直接分配(MFCDebug版本有内存管理

61588

MFC子窗口任务栏显示图标和主窗口最小化系统托盘显示图标

MFC子窗口任务栏显示图标很简单, 只需要在子窗口的初期化函数OnInitDialog()添加ModifyStyleEx(WS_EX_TOOLWINDOW, WS_EX_APPWINDOW); 主窗口系统托盘显示图标以及恢复窗口是参考某位大神的代码...(一)  原理     1、最小化的原理:首先要将窗口隐藏,然后右下角绘制图标。     ...2、恢复的原理:将窗口显示,再将托盘的图片删除。...(二)程序实现     1、自定义消息WM_SHOWTASK:  #define WM_SHOWTASK (WM_USER +1)     2、MFC的::OnSysCommand(UINT nID,...       ShowWindow(SW_HIDE);    //隐藏主窗口     }     2、恢复界面函数,头文件定义消息响应函数     afx_msg LRESULT OnShowTask

3K80

CString 类的线程不安全问题

1 问题描述 CString 类线程不安全问题和解决过程,测试运行一段时间后,后台软件崩了,软件重启后,恢复正常,隔三四小时又出现异常,Debug模式下调用堆栈,发现问题出现在strname = pSystemInfo...-> szName 这一行。...多数情况下,比较简单的使用过程MFC 的这个 BUG 不会发作,也就是不会有内存泄露。 那什么时候 CString 会暴露出 BUG 呢?...CString 类的 Debug 版本和 Release 版本不完全一样,Debug 版本则直接分配( MFC Debug 版本有内存管理,主要是为了排错,内存泄漏等),CString 类 Release...版本会使用定长内存管理( CFixedAlloc 类),主要管理是4个长度的内存, CString类的Debug版本和Release版本不完全一样,Debug版本则直接分配(MFCDebug版本有内存管理

40710

快速学习-Linux(VIM编辑器)

:可以末行输入命令来对文件进行操作(搜索、替换、保存、退出、撤销、高亮等等); Vim的打开文件的方式: #vim 文件路径 作用:打开指定的文件(可以是不存在的) #vim +数字...文件的路径 作用:打开指定的文件,并且将光标移动到指定行 #vim +/关键词 文件的路径 作用:打开指定的文件,并且高亮显示关键词(搜索) 重点:先复制出一个/etc/passwd文件,复制当前桌面下...末行模式进入之后的特征:光标最后一行上 编辑模式进入之后的特征:最后一行有类似于“------插入(insert)-----”的提 注意:末行模式和编辑模式之间是没有办法直接切换的,必须先走命令模式...搜索结果中切换上/下一个结果:N/n (next) 如果需要取消高亮,则需要在末行模式输入:“:nohl”【no highlight】 ⑥ 替换 :s/搜索的关键词/新的内容 替换光标所在行的第一处符合条件的内容...%表示整个文件(所有行) g表示全局(global) 案例:将测试文件的bin关键词全部替换成xxxx ⑦ 显示行号(临时) 输入:“:set nu”[number] 如果想取消显示,则输入:

2.7K10

浅谈移动端过长文本溢出显示省略号的实现方案

本文首发于 vivo互联网技术 微信公众号 链接: https://mp.weixin.qq.com/s/39NCyZvm8EYiJ-pEEtjxGw 作者:何彦军 目前移动端开发的展示界面,如果一段文本的数量过长...但通过canvas计算出来的结果,会导致每一行的文本增多了,从而跟预期的展示效果有出入。 因此,这种方案只能适用于文本不包含特殊符号和英文单词的场景。...一段时间后,产品同学感觉展示那么一段文本有点儿单调,于是又提出了一个进阶版的需求: 文本的首行开头需要缩进或者可以配置一个图标; 文本的末尾可以配置按钮或者图标,并且如果文本超过了范围需要显示省略号,但是省略号需要在按钮或图标的前面...所以,截取文本的时候还需要做一些处理,流程图如下图所示。 到这里,已经实现文本的一种高亮形式了,但是假如有好几个部分的文本需要高亮高亮的样式还各不相同,这又要怎么解决呢?...一种思路是,通过几种不同名称的标签分别包裹需要高亮的文本,每一种标签会对应一种高亮样式,这样的话,获得源文本后,首先通过词法分析将源文本的标签解析出来,后面的流程就跟上图步骤1后面的流程类似了。

2K20

深入浅出MFC-读书笔记

注意, CreateWindow 只产生窗口,并不显示窗口,所以稍后我们必须再利用ShowWindow 将之显示屏幕上。...)也记录在类别型录,当程序执行时期获得一个类别名称,它就可以「类别型录网」找出对应的元素,然后调用其构造函数(这里并非指C++ 构造式),产生出对象。...成员变量很可能是个对象,而面对对象,我们首先应该记载其类别名称,然后才是对象的资料。 动态生成技术MFC应用于程序读取Document到类。...Document/View 的价值在于,这些MFC 类别已经把一个应用程序所需的「数据处理与显示」的函数空壳都设计好了,这些函数都是虚拟函数,所以你可以(也应该)衍生类别改写它们。...当使用者打开一份文件文件,程序应该把主窗口上的菜单换掉,这个动作SDK 程序由程序员负责,MFC 程序则由Framework 代劳了。

78020

深入扩展文本溢出解决方案

实际的开发不管是移动端还是 PC 端都会遇到文本太长,因为宽度不够导致我们需要设置成省略号。文本就文本溢出做一个总结,希望对你们开发过程中有帮助。...阅读本文你将看到如下几部分内容: 单行文本溢出 多行文本溢出 拓展的多行文本溢出 自定义多行文本溢出 高亮多行文本溢出 单行文本溢出 一行文本超出显示是一个最基本的超出最大宽度,显示省略号[1],效果如图所示...x: 0,//文字x轴要显示的位置 y: 0,//文字y轴要显示的位置 maxLine: 3//文字最多显示的行数 }) 效果图 当文本没有超过第 x 行的一半时,则按第 x-1 行溢出显示省略号的方式展示...所以,截取文本的时候还需要做一些处理,流程图如下图所示。 ? 到这里,已经实现文本的一种高亮形式了,但是假如有好几个部分的文本需要高亮高亮的样式还各不相同,这又要怎么解决呢?...一种思路是,通过几种不同名称的标签分别包裹需要高亮的文本,每一种标签会对应一种高亮样式,这样的话,获得源文本后,首先通过词法分析将源文本的标签解析出来,后面的流程就跟上图步骤 1 后面的流程类似了。

1.3K20

sublime text3的使用

3.插件ConvertToUTF8 功能:用于其他的编码的文件显示时转换成UTF8编码,对源文件无影响。 安装方法:Ctrl + shift + p ?...BracketHighlighter 插件高亮显示匹配的括号、引号和标签。 LESS 插件语法高亮显示 sublime-less2css 插件将less文件编译成css文件。...使用方法:按 Ctrl+Alt+[ 收缩CSS代码为一行显示,按 Ctrl+Alt+] 展开CSS代码为多行显示。...→ 上下左右移动光标 Alt 调出菜单 Ctrl + Shift + P 调出命令板(Command Palette) Ctrl + ` 调出控制台 Ctrl + Enter 在当前行下面新增一行然后跳至该行...Ctrl + Shift + ↑/↓ 移动当前行 Ctrl + D 选择当前光标所在的词并高亮该词所有出现的位置,再次 Ctrl + D 选择该词出现的下一个位置,多重选词的过程,使用 Ctrl

84340

CListCtrl使用「建议收藏」

列表控件可以看作是功能增强的ListBox,它提供了四种风格,而且可以同时显示一列的多属性值。 MFC中使用CListCtrl类来封装列表控件的各种操作。...通过调用int InsertItem( int nItem, LPCTSTR lpszItem )可以列表控件nItem指明位置插入一项,lpszItem为显示字符。 3....控件显示该结点时会通过发送TVN_GETDISPINFO来取得所需要的字符,处理该消息时先将参数 pNMHDR转换为LPNMLVDISPINFO, 然后填充其中item.pszText...*pResult = 0; } 关于编辑某项的显示字符: (报表风格只对第一列有效)首先需要设置列表控件的 LVS_EDITLABELS风格,开始编辑时该控件将会发送LVN_BEGINLABELEDIT..., 你可以通过处理函数返回TRUE来取消接下来的编辑,在编辑完成后会发送LVN_ENDLABELEDIT,处理该消息时需要将参数pNMHDR转换为LPNMLVDISPINFO, 然后通过其中的

1K20

VS下如何建立一个新的MFC程序 网络编程 课设 基于C++ MFC 连接数据库 小应用 小项目浅析展示

就是 打开VS 新建项目-MFC -MFC工程-点基于对话框 -和在静态库中使用 然后下一页将关于对话框取消了 不然会有两个对话框出来 然后点击完成 具体如下 步骤1:双击打开vs2013,进入起始页,...勾选“基于对话框”,MFC的使用”,勾选“静态库中使用MFC(U)”,再点击下一步。...注:MFC可以静态库下使用,或者共享DLL中使用,但前者会把所有用到的dll文件集成到exe文件,因此占用内存较大,所以自己选择。 ?  ...注意啦 这是我MYSQL的安装目录  你们看自己的)     最后加一个 项目-属性-连接器-常规  -附加依赖项 里 加 libmysql.lib   然后把这个MYSQL的文件 拷贝到自己MFC...; mysql_query(&m_sqlCon, "SET NAMES 'GB2312'");//解决从数据库读取数据后汉字乱码显示的问题 也可以是UTF-8 } 好了

3K30
领券