简单文本编辑器制作--windows程序设计雏形

对于文本编辑器,最关键的知识点,就是 插入符号 的操作了...

windows中有5个基本的插入符号函数:

  CreateCaret:创建和窗口关联的插入符号

  SetCaretPos:设置窗口内的插入符号的位置

  ShowCaret:显示插入符号

  HideCaret:隐藏插入符号

  DestroyCaret:销毁插入符号

对于插入符号的相关函数:

  GetCaretPos:获得当前插入符号位置的函数

  GetCaretBlinkTime SetCaretBlinkTime获得和设置插入符号闪烁的时间函数

关于 插入符号 的消息捕获:

程序通过处理WM_SETFOCUS和WM_KILLFOCUS消息决定它是否具有输入焦点。

当程序接收输入焦点是,接收一个WM_SETFOCUS消息。当程序失去输入焦点时,收到一个WM_KILLFOCUS。

这些消息都是成对出现的。

使用插入符号的主要规则

  在窗口过程处理WM_SETFOCUS消息时调用CreateCaret函数。在窗口处理WM_KILLFOCUS消息时,调用DestroyCaret函数。

详细代码如下:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏xcywt

《Linux命令行与shell脚本编程大全》第十二章 使用结构化命令

许多程序要就对shell脚本中的命令施加一些逻辑控制流程。 结构化命令允许你改变程序执行的顺序。不一定是依次进行的 12.1 使用if-then语句 如下格式:...

23180
来自专栏Java编程技术

什么是重排序与中断

Java内存模型中,允许编译器和处理器对指令进行重排序,但是重排序可以保证最终执行的结果是与程序顺序执行的结果一致,并且只会对不存在数据依赖性的指令进行重排序,...

8920
来自专栏待你如初见

Java多线程

14430
来自专栏Golang语言社区

Golang语言--包的概念、导入与可见性

go中包的概念、导入与可见性 ? 包是结构化代码的一种方式:每个程序都由包(通常简称为 pkg)的概念组成,可以使用自身的包或者从其它包中导入内容。 如同其它一...

41650
来自专栏数值分析与有限元编程

Fortran知识 | 代码错误(无法解析的外部符号)

如图所示,提示为:无法解析的外部符号。 ? 找不到某些函数或子程序。如果这些函数或子程序在函数库中,没有正确被使用;如果被提示的函数应该是数组,可能没有定义为数...

39790
来自专栏我的博客

PHP反射机制

PHP反射机制它是用来导出或提取出关于类、方法、属性(私有保护等属性也能获取)、参数等的详细信息,包括注释。 <?php class Test{ ...

42670
来自专栏北京马哥教育

搞定Linux Shell文本处理工具,看完这篇集锦就够了

Linux Shell是一种基本功,由于怪异的语法加之较差的可读性,通常被Python等脚本代替。既然是基本功,那就需要掌握,毕竟学习Shell脚本的过程中,还...

39830
来自专栏ImportSource

JVM中的“同步”到底是怎么实现的?

JVM中的Synchronization是使用monitor entry和exit来实现的。不管是显式的还是隐式的。显式的是通过使用monitorenter和m...

30550
来自专栏博岩Java大讲堂

多线程--同步与锁

25830
来自专栏web前端教室

[先行者周日课程-0305] web前端组件 之 拖动窗口

学习笔记如下: 今天的内容,是拖动窗口。 js的引用数据类型,基本数据类型。 js它有5种基本数据类型: undefined , null, Boolean,...

22080

扫码关注云+社区

领取腾讯云代金券