Scintilla教程(4): 复制粘贴以及撤销回退
Overtype
修改模式
整体介绍
该功能不常用,当点击键盘中Insert按键后,输入模式更改。
SCI_SETOVERTYPE,SCI_GETOVERTYPE
SCI_SETOVERTYPE(bool overType) SCI_GETOVERTYPE → bool
启用改写后,每个键入的字符将替换文本插入符号右侧的字符。禁用改写时,将在插入符号处插入字符。如果改写处于活动状态,SCI_GETOVERTYPE将返回true(1),否则将返回false(0)。使用SCI_SETOVERTYPE设置改写模式。
Cut, copy and paste
剪切,复制以及粘贴
整体介绍
用于复制粘贴等常规功能。
SCI_CUT,SCI_COPY,SCI_PASTE,SCI_CLEAR,SCI_CANPASTE,SCI_COPYALLOWLINE
SCI_CUT SCI_COPY SCI_PASTE SCI_CLEAR SCI_CANPASTE → bool SCI_COPYALLOWLINE
这些命令执行标准任务,包括剪切数据并将其复制到剪贴板、从剪贴板粘贴到文档以及清除文档。如果文档不是只读的,并且所选内容不包含受保护的文本,SCI_CANPASTE将返回非零。如果需要“可以复制”或“可以剪切”,请使用SCI_GETSELECTIONEMPTY(),如果有任何非空的选择范围意味着复制或剪切到剪贴板应该有效,则该值将为零。
SCI_COPYALLOWLINE的工作原理与SCI_COPY相同,只是如果选择为空,则复制当前行。在Windows上,将向剪贴板添加一个额外的“MSDEVLineSelect”标记,然后在SCI_粘贴中使用该标记将整行粘贴到当前行之前。
SCI_COPYRANGE,SCI_COPYTEXT
SCI_COPYRANGE(position start, position end) SCI_COPYTEXT(position length, const char *text)
SCI_COPYRANGE将一系列文本从文档复制到系统剪贴板,SCI_COPYTEXT将提供的文本复制到系统剪贴板。
SCI_SETPASTECONVERTENDINGS,SCI_GETPASTECONVERTENDINGS
SCI_SETPASTECONVERTENDINGS(bool convert) SCI_GETPASTECONVERTENDINGS → bool
如果设置了此属性,则在粘贴文本时,任何行尾都会转换为与SCI_SETEOLMODE设置的文档行尾模式相匹配。默认为true。
SCI_REPLACERECTANGULAR
SCI_REPLACERECTANGULAR(position length, const char *text)
用给定文本替换选定文本或空选择。插入的执行方式类似于矩形粘贴:给定文本中的新行被解释为移动到下一行而不插入新行,除非在文档末尾。
Error handling
整体介绍
用于当前Scintilla错误状态。
SCI_SETSTATUS,SCI_GETSTATUS
SCI_SETSTATUS(int status) SCI_GETSTATUS → int
如果发生错误,Scintilla可能会设置一个内部错误号,该编号可以通过SCI_GETSTATUS检索。要清除错误状态,请调用SCI_SETSTATUS(0)。状态值从1到999为错误,状态SC_Status_WARN_START(1000)及以上为警告。当前定义的状态为:
错误码 | 值 | 说明 |
---|---|---|
SC_STATUS_OK
|
0 | No failures |
SC_STATUS_FAILURE
|
1 | Generic failure |
SC_STATUS_BADALLOC
|
2 | Memory is exhausted |
SC_STATUS_WARN_REGEX
|
1001 | Regular expression is invalid |
Undo and Redo
整体介绍
回退与重做。
SCI_UNDO,SCI_CANUNDO
SCI_UNDO SCI_CANUNDO → bool
SCI_UNDO撤消一个操作,或者如果撤消缓冲区已达到SCI_ENDUNDOACTION点,则所有操作将返回到相应的SCI_BEGINUNDOACTION。
如果没有要撤消的内容,SCI_CANUNDO将返回0,如果有,则返回1。您通常会使用此消息的结果来启用/禁用编辑菜单撤消命令。
SCI_EMPTYUNDOBUFFER
SCI_EMPTYUNDOBUFFER
该消息
该消息用于清空当前撤消缓冲区以及重做缓冲区,执行该命令后,当前文档将显示为未修改。本消息的执行将不会触发SCN_SAVEPOINTREACHED 的通知。
SCI_SETUNDOCOLLECTION,SCI_GETUNDOCOLLECTION
SCI_SETUNDOCOLLECTION(bool collectUndo) SCI_GETUNDOCOLLECTION → bool
SCI_SETUNDOCOLLECTION消息用于控制Scintilla是否收集撤消信息。传入true(1)以收集信息,传入false(0)以停止收集。如果停止收集,还应使用SCI_EMPTYUNDOBUFFER以避免撤消缓冲区与缓冲区中的数据不同步。
如果您使用Scintilla存储程序(日志视图)生成的文本,或者在经常删除和重新生成文本的显示窗口中,可以关闭保存撤消信息。
SCI_BEGINUNDOACTION,SCI_ENDUNDOACTION
SCI_BEGINUNDOACTION SCI_ENDUNDOACTION
这两个消息用来标记一组操作的开始和结束,用来批量撤销或重做。
SCI_ADDUNDOACTION
SCI_ADDUNDOACTION(int token, int flags)
该消息可以将其自己的操作添加到撤消堆栈中,并且在撤消(SC_PERFORMED_UNDO)或重做(SC_PERFORMED_REDO)操作时,将使用SC_MOD_CONTAINER标志向容器发送SCN_MODIFIED通知。提供的令牌参数将在通知的令牌字段中返回。
例如,如果容器希望允许撤消和重做“toggle bookmark”命令,那么它可以在每次执行该命令时调用SCI_ADDUNDOACTION(line,0)。然后,当它收到撤销或重做的通知时,它会在令牌字段给出的行上切换书签。如果有不同类型的命令或参数需要存储到撤销堆栈中,那么容器应该为文档维护自己的堆栈,并使用该堆栈中的当前位置作为SCI_ADDUNDOACTION(line)的参数。SCI_ADDUNDOACTION命令不会组合到单个撤消事务中,除非与SCI_BEGINUNDOACTION和SCI_ENDUNDOACTION组合在一起。
当flags参数是UNDO_MAY_COALESCE(1),则器操作可以与任何插入和删除操作合并到单个复合操作中。否则flags参数为UNDO_NONE(0)。合并将可合并的容器操作视为透明的,所以仍然只将看起来像键入或删除的插入组合在一起,看起来像多次使用退格键或删除键。
Scintilla教程(4): 复制粘贴以及撤销回退相关推荐
- C# 复制 粘贴 剪切 撤销
//复制 try { this.Cursor = Cursors.WaitCursor; string strTemp = richTextBoxSendInfo.SelectedText; //获取 ...
- 文本编辑器实现复制、剪切、粘贴、撤销、重做操作
文章目录 1 文本编辑器实现复制.剪切.粘贴.撤销.重做操作 1.1 功能实现 1.2 界面状态维护 1 文本编辑器实现复制.剪切.粘贴.撤销.重做操作 1.1 功能实现 编辑器中的常规编辑交互功能: ...
- Mac OS开发—Xcode给Mac应用添加编辑快捷键(剪切 复制 粘贴 全选 删除 撤销 重做)功能
前言 笔者做Windows开发的,无奈公司有Mac OS的项目需要维护,之前没有编辑菜单的功能,需要笔者加上这个功能,笔者只能硬着头皮上.还好会c++,Mac应用里面一般都会用object-c 也可以 ...
- qml中使用combobox实现多级菜单_Excel教程:还不会做Excel三级下拉菜单?其实它跟复制粘贴一样简单...
关注回复[目录]学习113篇Excel教程 全套Excel视频教程,扫码观看 编按: 哈喽,大家好!说到做下拉菜单,小伙伴们都知道直接使用Excel中的数据验证就可以实现,但是二级.三级,甚至更多级的 ...
- 计算机复制教程,教你如何使用电脑复制粘贴快捷键
我们知道键盘上面的按键都有相对应功能,比如复制快捷键是Ctrl+C,那么这个已经是我们日常使用电脑最基本的知识点了,但是对于还不了解电脑的朋友来说,还是有必要给这部分新用户普及下相关的教程,下面一起学 ...
- 魔兽地图编辑器插件YDWE的使用与基本设置2之空格、复制、粘贴、撤销、重做键
魔兽地图编辑器插件YDWE的使用与基本设置2之空格.复制.粘贴.撤销.重做键 1.space(空格):选择刷子 光标与上一选择状态(比如选中的建筑物.地形等)切换 2.撤销键Ctrl+Z 撤销上一步做 ...
- CREO:CREO软件之零件【模型】操作之复制/粘贴、再生模型、旋转中心开关、隐含、只读、特征操作、模型缩放的简介及其使用方法(图文教程)之详细攻略
CREO:CREO软件之零件[模型]操作之复制/粘贴.再生模型.旋转中心开关.隐含.只读.特征操作.模型缩放的简介及其使用方法(图文教程)之详细攻略 目录
- 【微课制作软件】Focusky教程 | 支持同时打开多个文档并相互复制粘贴
Focusky(也称为"FS软件")从v2.10版本开始,就支持同时打开多个文档了. 同时打开多个文档: 点击"文件"--"新建工程"或者点 ...
- excel小写转大写公式_一个复制粘贴的问题,竟然难倒了90%的Excel人【Excel表格制作教程】...
点击蓝字发送[目录]送你200篇独家Excel精华教程 全套Excel视频,限时特价,扫码观看! 如果我对你说,我可以将一个连续区域中的值,快速粘贴到筛选后不连续的区域中,你信吗?例如要将下图右侧连续 ...
- 复制粘贴-快速安装k8s教程
复制粘贴-快速安装k8s教程 文章目录 复制粘贴-快速安装k8s教程 1.首先检查操作系统的版本 2. 主机名解析 3.时间同步 4.禁用iptable和firewalld服务 5.禁用selinux ...
最新文章
- C语言的单链表求交点
- 【微信小程序企业级开发教程】生命周期和app对象详解
- PHP array_combine
- SharePoint 2013 APP 开发示例 (六)服务端跨域访问 Web Service (REST API)
- python基础(part14)--异常处理
- 在VC8里调用VBScript.dll的RegularExpression
- php 关闭 row,MySql php:检查Row是否存在
- 基于51单片机LCD1602电子时钟实物制作
- 欧盟网络安全局发布《供应链攻击威胁全景图》报告(上)
- CF 4B. Before an Exam
- C# 使用Newtonsoft.Json 对象转json字符串,json字符串转对象
- NLP - AIML
- GoldenDict:一款免费的词典工具
- 盗版影视网站买什么服务器,文化部严打影视盗版:网吧主清空影视服务器
- 【简单的密码生成器】
- c语言程序设计吉林大学康辉目录,[吉林大学康辉] 经典C语言程序设计视频教程 51讲...
- VirtualBox中win7系统无法安装增强功能
- 使用Breeze快速搭建GUI方式K8S集群操作手册
- shader Cg 基本数据类型
- 0的0次幂(0^0)应该等于0还是1?
热门文章
- 超详细设置Idea类注释模板和方法注释模板
- 网页播放 .m3u8 视频文件
- Linux 用户授权的方法,linux中用户和权限管理
- 抖音数据统计_【数据】2018抖音大数据报告(完整版)
- 交流电机Clark变换中的功率不变约束与幅值不变约束
- 如何安装数据库和数据库安装不了如何解决
- 【广东大学生网络攻防大赛-WriteUp(非官方)】Misc | 复合
- 程序员如何在工作之外获得收入
- 7 Papers Radios | 陈丹琦关系抽取新SOTA;上海交大医疗版MNIST数据集
- 武汉大学计算机学院程序大赛,“星网锐捷杯”华中区高校研究生程序设计大赛通知...