/*文本编辑器editor 源代码*/ #include #include #include #include #define LEFT 0x4b00 /*←:光标左移*/ #define RIGHT 0x4d00 /*→:光标右移*/ #define DOWN 0x5000 /*↓键:光标下移*/ #define UP 0x4800 /*↑键:光标上移*/ #define ESC 0x011b /*ESC 键:取消菜单打开操作*/ #define ENTER 0x1c0d /*回车键:换行*/ #define DEL 21248 /*DEL 键:删除当前字符*/ #define BACK 3592 /*BackSpace 键:删除当前光标位置前一个字符*/ #define CL 29440 /*ctrl+←键:从右至左,选定文本*/ #define CR 29696 /*ctrl+→键:从左到右,选定文本*/ #define Cc 11779 /*ctrl+c 键:将选定文本,复制一份到剪贴板中*/ #define Cv 12054 /*ctrl+v 键:将剪贴板中的内容复制到当前位置*/ #define Cx 11544 /*ctrl+x 键:对选定文本,执行剪切操作*/ #define F1 15104 /*F1 键:打开文件菜单*/ #define F2 15360 /*F2 键:打开编辑菜单*/ #define F3 15616 /*F3 键:打开帮助菜单*/ #define F10 17408 /*F10 键:进入文本快速预览模式*/ int value,backup,NUM; /*value 保存有值数组元素的最大下标值,backup 保存 value 的副本,NUM 保存当前行中的用户输入的字符个数*/ typedef struct record { char ch; /*保存一字符*/ int col, line; /*x 轴和 y 轴坐标*/ }record; record r[500]; /*定义一个有 500 个元素的结构体数组,保存选定的文本字符的属性*/ typedef struct node /*定义保存行中的单个字符的结构*/ { char ch; /*数据域:保存一字符*/ struct node *next; /*指针域:指向下一个结点的指针*/ }node;/*由此类型节点构成的单链表,命名为:列单链表*/ typedef struct Hnode /*定义保存所有列单链表首节点的指针的结构*/ { node *next; /*指向列单链表的首节点的地址*/ struct Hnode *nextl; /*指向下一个节点的指针*/ }Hnode;/*由此类型节点构成的单链表,命名为:行单链表*/ void drawmain() /*画主窗口函数*/ { int i,j; gotoxy(1,1); /*在文本窗口中设置光标至(1,1)处*/ textbackground(7); /*选择新的文本背景颜色,7 为LIGHTGRAY 淡灰色*/ textcolor(0); /*在文本模式中选择新的字符颜色0 为BLACK 黑*/ insline(); /*在文本窗口...