📄 在unix下用c编写curses程序的一些常用模块.htm
字号:
<tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=29482 target=_blank>cxzty</a> 回复于:2003-06-22 16:08:26</small></td></tr><tr><td>语法有错误,有-lcurses选择项也不行!不知哪位高手可以修补一下。<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=56218 target=_blank>fireball</a> 回复于:2003-06-22 21:32:37</small></td></tr><tr><td>期待中......<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=29482 target=_blank>cxzty</a> 回复于:2003-06-23 09:13:17</small></td></tr><tr><td>等待!急切等待<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=39249 target=_blank>ncwyj</a> 回复于:2003-06-23 10:33:28</small></td></tr><tr><td>呵呵~ 我也想瞧瞧!<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=56218 target=_blank>fireball</a> 回复于:2003-06-23 20:37:03</small></td></tr><tr><td>up<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=29829 target=_blank>无双</a> 回复于:2003-06-23 21:00:44</small></td></tr><tr><td>原因是<是HTML符号之一
<br>所以被吃掉了
<br>
<br>另外这个例子只是让大家知道应该什么写的
<br>理解一下原来意思就可以
<br>
<br>不一定要每一个都全部写完
<br>自己动动脑子才会进步<img src=http://www.chinaunix.net/forum/images/smiles/icon_biggrin.gif border=0><br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=56218 target=_blank>fireball</a> 回复于:2003-06-23 21:59:51</small></td></tr><tr><td>关键是被吃掉的代码即for循环的控制是什么呢?
<br>能贴出来吗?<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=29829 target=_blank>无双</a> 回复于:2003-06-24 01:37:08</small></td></tr><tr><td>有时间时我贴一下
<br>
<br>主要是要知道它的意思<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=29482 target=_blank>cxzty</a> 回复于:2003-06-24 06:19:32</small></td></tr><tr><td>等<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=29829 target=_blank>无双</a> 回复于:2003-06-24 11:38:48</small></td></tr><tr><td>我修改的地方写有无双修改两个字
<br>
<br>这主要是一个例子
<br>
<br>所以大家要知道它是什么意思这是主要的<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=63334 target=_blank>zjlx_wylx</a> 回复于:2003-06-26 19:44:38</small></td></tr><tr><td>致敬!<br><br></td></tr><tr><td ><hr><small> <a href=http://www.chinaunix.net/forum/profile.php?mode=viewprofile&u=24387 target=_blank>pushu115</a> 回复于:2003-06-27 12:52:49</small></td></tr><tr><td>其实borland公司有一个owl for unix封装了curses操作,c++编写的,实现起来要简单一些,以下是有关的文章转载:
<br>
<br>
<br>///////////////////////////////////////////////////////////////////////////////////
<br>
<br>
<br>SCO UNIX环境下
<br>
<br>面向对象的程序设计
<br>
<br>
<br>
<br>林风人 编著
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>二○○一年二月二十七日
<br>
<br>版权所有 翻版必究
<br>
<br>
<br>
<br>
<br>
<br>内 容 摘 要
<br>
<br>
<br>
<br>本手册以范例的形式,由浅入深介绍了在SCO UNIX下进行面向对象程序设计的原理,并对包括类体系及其与UNIX环境的交互作用方式在内的Object UNIX Class Library的构成进行了详细介绍。本手册还是一本Object UNIX Class Library的参考手册,包括Object UNIX Class Library的类、类型、常量以及UNIX函数、类型和常量。
<br>
<br>本手册还介绍SCO UNIX环境下集成编译系统(IDE)的使用指南。用户在编写自己的应用程序时,可以选择采用SCO UNIX提供的编辑器VI来编写自己的源程序代码,然后通过命令行cc或者make来编译自己的应用程序,也可以选择本系统提供的集成编辑编译系统IDE,在窗口环境下编写程序、创建工程、编译并且运行您的系统。本系统提供丰富的全屏幕编辑命令。
<br>
<br>
<br>
<br>
<br>
<br>引 言
<br>
<br>
<br>
<br>Object UNIX Class Library提供了一种有趣的开发SCO UNIX环境下的文本模式应用程序的新方法。直到最近,大多数UNIX编程都需要UNIX C编译器和大量分离而复杂的开发工具,这样,UNIX应用程序开发显得冗长、复杂和令人费解。借助Object UNIX Class Library应用程序框架,UNIX编程就容易了许多。
<br>
<br>在大多数交互式的UNIX应用程序中,用户的界面元素操作处理以及程序内部的消息循环需要编程人员花费大量的时间并利用大量的case语句来分析用户该执行哪些操作。这就需要一个比较熟练的编程人员来实现它并掌握许多的SCO UNIX下的API函数以及界面处理的curses库函数,为编写一个可用的交互式应用程序,您可能必须掌握它们。
<br>
<br>Object UNIX Class Library提供了一个面向对象的类库,其中封装了UNIX应用程序都要执行的(程序级和窗口级)行为。Object UNIX Class Library用以简化UNIX开发的手段是:
<br>
<br>l 一个一致、直观简捷的UNIX应用程序接口
<br>
<br>l 提供菜单、窗口、对话框以及许多类似VB的控件
<br>
<br>l 为窗口管理和消息处理提供的行为
<br>
<br>l 用于构造UNIX应用程序的基本框架
<br>
<br>由于程序员可以“继承”这些基本功能,故可以把主要精力放在应用程序的功能实现上。
<br>
<br>Object UNIX Class Library手册的内容
<br>
<br>由于Object UNIX Class Library使用了某些新的技术,因此本书包含大量的解释材料。其中包括三个部分:
<br>
<br>l 第一部分:Object UNIX Class Library初步,介绍了编写SCO UNIX 环境下的Object UNIX Class Library应用程序的原理。通过编写一个范例程序并将其逐步扩充,使用户能了解编写一个UNIX交互式应用程序的全过程。
<br>
<br>l 第二部分:使用Object UNIX Class Library,对Object UNIX Class Library的构成提供了详细的说明,其中包括类体系结构概述,以及类体系与UNIX环境的交互作用方式。
<br>
<br>l 第三部分:Object UNIX Class Library参考,提供了有关Object UNIX Class Library类、Object UNIX Class Library类型、Object UNIX Class Library常量的说明。
<br>
<br>软硬件需求
<br>
<br>由于Object UNIX ClassLibrary是一种用于编写SCO UNIX应用程序的应用程序框架,故Object UNIX ClassLibrary应用程序所需要的基本硬件配置与SCO UNIX程序相同:
<br>
<br>l 一个硬盘
<br>
<br>l 16MB(或更多的)内存
<br>
<br>l 与UNIX兼容的终端方式,本系统采用ANSI终端方式
<br>
<br>l 采用UNIX的文本模式,而不是Motif图形方式
<br>
<br>可以借助SCO UNIX本身的编译系统来编译UNIX应用程序,也可以用本系统提供的集成编辑编译系统环境。
<br>
<br>参考书目
<br>
<br>《Windows环境下面向对象的程序设计》 Borland C++ 3.0技术丛书。
<br>
<br>版权说明
<br>
<br>Object Window Library(OWL)是美国Borland公司开发的产品。
<br>
<br>请与我联系
<br>
<br> 很高兴您选择《UNIX环境下的面向对象程序设计》和基于UNIX下的Object UNIX Class Library类库作为您开发UNIX应用程序的工具。请多提宝贵意见,我很乐意听取您的意见和回答您提出的问题,请联系linfengren@163.net,或者(0)13906918458(福州)。等候您的佳音。
<br>
<br>
<br>
<br>
<br>
<br>目 录
<br>
<br>
<br>
<br>第一部分 Object UNIX Class Library初步......... 1
<br>
<br>第一章 继承窗口...... 1
<br>
<br>1.1 面向对象的应用程序编程... 1
<br>
<br>1.1.1 一个较好的UNIX接口... 2
<br>
<br>1.2 “Hello,UNIX”. 3
<br>
<br>第二章 基于Object UNIX Class Library的应用程序基础...... 5
<br>
<br>2.1 编制一个Object UNIX Class Library应用程序:预备知识... 5
<br>
<br>2.1.1 类库... 5
<br>
<br>2.1.2 目录... 6
<br>
<br>2.2 建立Object UNIX Class Library应用程序... 7
<br>
<br>2.2.1 使用IDE建立Object UNIX Class Library应用程序... 7
<br>
<br>2.2.2 使用UNIX系统提供的make或者CC命令行工具... 7
<br>
<br>2.3 第一步:一个简单的基于UNIX系统的交互式应用程序... 8
<br>
<br>2.3.1 应用程序要求... 8
<br>
<br>2.4 第二步:主窗口类... 10
<br>
<br>2.4.1 何谓主窗口... 10
<br>
<br>2.4.2 生成主窗口对象... 11
<br>
<br>2.4.3 响应事件... 12
<br>
<br>2.4.4 终止应用程序... 12
<br>
<br>第三章 在窗口中显示文本...... 14
<br>
<br>3.1 在窗口中绘制文本... 14
<br>
<br>3.2 清屏... 15
<br>
<br>3.3 重新显示主窗口... 15
<br>
<br>3.4 定义用户自己的主窗口... 16
<br>
<br>第四章 增加菜单...... 17
<br>
<br>4.1 主窗口菜单... 17
<br>
<br>4.2 解释菜单消息... 18
<br>
<br>4.3 响应菜单消息... 19
<br>
<br>第五章 增加对话框...... 20
<br>
<br>5.1 增加一个对话框... 20
<br>
<br>5.2 增加用户自定义对话框的数据成员与操作函数... 21
<br>
<br>5.2.1 增加对象成员(控件)到对话框中... 21
<br>
<br>5.2.2 响应对话框事件... 23
<br>
<br>5.2.3 定制自己的对话框初始化... 24
<br>
<br>5.3 运行对话框... 24
<br>
<br>5.4 控件对象... 25
<br>
<br>5.4.1 建立对话框控件... 25
<br>
<br>5.4.2 作为数据成员的控件对象... 26
<br>
<br>5.4.3 管理控件对象... 26
<br>
<br>5.4.4 对控件对象事件的响应... 27
<br>
<br>第二部分 使用Object UNIX Class Library.... 29
<br>
<br>第六章 概述...... 29
<br>
<br>6.1 Object UNIX Class Library的约定... 29
<br>
<br>6.2 Object UNIX Class Library的类体系结构... 31
<br>
<br>6.2.1 TObject. 32
<br>
<br>6.2.2 TApplication. 32
<br>
<br>6.2.3 TWindow. 32
<br>
<br>6.2.4 TDialog. 32
<br>
<br>6.2.5 控件对象... 32
<br>
<br>6.3 屏幕curses操作函数和标准运行库函数调用... 34
<br>
<br>第七章 模块和应用程序...... 35
<br>
<br>7.1 应用程序流程... 35
<br>
<br>7.2 初始化应用程序... 36
<br>
<br>7.2.1 初始化主窗口... 36
<br>
<br>7.3 运行应用程序... 37
<br>
<br>7.4 关闭应用程序... 38
<br>
<br>第八章 界面对象...... 39
<br>
<br>8.1 TObject. 39
<br>
<br>8.2 为何要用界面对象... 39
<br>
<br>8.3 窗口父/子关系... 40
<br>
<br>8.3.1 控件列表... 41
<br>
<br>8.3.2 子对象控件的遍历函数... 41
<br>
<br>8.4 消息处理... 42
<br>
<br>8.4.1 对控件事件的响应... 42
<br>
<br>8.4.2 对菜单事件的响应... 43
<br>
<br>第九章 窗口对象...... 44
<br>
<br>9.1 TWindow类... 44
<br>
<br>9.2 初始化和生成窗口对象... 44
<br>
<br>9.2.1 初始化窗口对象... 44
<br>
<br>9.2.2 生成窗口元素... 46
<br>
<br>9.3 主窗口菜单系统... 46
<br>
<br>9.3.1 菜单结构说明... 47
<br>
<br>9.3.2 菜单对象定义... 50
<br>
<br>9.4 主窗口菜单事件... 50
<br>
<br>第十章 对话框对象...... 51
<br>
<br>10.1 使用对话框对象... 51
<br>
<br>10.2 构造和初始化对话框对象... 51
<br>
<br>10.3 生成和执行对话框... 52
<br>
<br>10.4 关闭对话框... 53
<br>
<br>10.5 控件管理和事件消息处理... 53
<br>
<br>10.5.1 定义消息响应函数... 54
<br>
<br>10.5.2 执行消息响应函数... 54
<br>
<br>第十一章 控件对象...... 56
<br>
<br>11.1 控件对象的使用... 57
<br>
<br>11.2 控件焦点与键盘... 57
<br>
<br>11.3 标签(静态文本)控件... 58
<br>
<br>11.3.1 创建标签控件... 58
<br>
<br>11.3.2 查询标签控件... 58
<br>
<br>11.3.3 修改标签控件... 59
<br>
<br>11.4 编辑框控件... 59
<br>
<br>11.4.1 创建编辑框控件... 59
<br>
<br>11.4.2 查询编辑框控件... 60
<br>
<br>11.4.3 修改编辑框控件... 60
<br>
<br>11.5 按钮控件... 60
<br>
<br>11.5.1 创建按钮控件... 60
<br>
<br>11.5.2 对按钮事件的响应... 61
<br>
<br>11.6 画线控件... 62
<br>
<br>11.6.1 创建画线控件... 62
<br>
<br>11.7 成组框控件... 63
<br>
<br>11.7.1 创建成组框... 63
<br>
<br>11.7.2 响应成组框消息... 63
<br>
<br>11.8 列表框控件... 63
<br>
<br>11.8.1 创建列表框... 64
<br>
<br>11.8.2 修改列表框... 64
<br>
<br>11.8.3 查询列表框... 65
<br>
<br>11.9 组合框控件... 65
<br>
<br>11.9.1 创建组合框... 65
<br>
<br>11.9.2 查询组合框... 66
<br>
<br>11.10 检验框和互锁按钮控件... 66
<br>
<br>11.10.1 创建检验框和互锁按钮控件... 67
<br>
<br>11.10.2 查询检验框和互锁按钮的状态... 67
<br>
<br>11.10.3 修改检验框和互锁按钮的状态... 67
<br>
<br>11.11 文本文件显示控件... 67
<br>
<br>11.11.1 创建文本文件显示控件... 68
<br>
<br>11.12 数据库浏览控件... 68
<br>
<br>11.12.1 创建数据库浏览控件... 68
<br>
<br>11.12.2 修改数据库控件... 68
<br>
<br>11.12.3 查询记录和字段... 70
<br>
<br>11.12.4 附加说明... 70
<br>
<br>11.13 滑动尺控件... 71
<br>
<br>11.13.1 创建滑动尺对象... 71
<br>
<br>11.13.2 查询滑动尺... 71
<br>
<br>11.13.3 修改滑动尺... 72
<br>
<br>11.14 多行文本编辑控件... 72
<br>
<br>11.14.1 创建多行文本编辑框控件... 73
<br>
<br>11.14.2 查询多行文本编辑框控件... 73
<br>
<br>11.14.3 修改多行文本编辑框控件... 73
<br>
<br>第三部分 Object UNIX Class Library类参考......... 74
<br>
<br>第一章 类参考...... 74
<br>
<br>TObject. 75
<br>
<br>数据成员... 75
<br>
<br>成员函数... 76
<br>
<br>TApplication. 77
<br>
<br>数据成员... 77
<br>
<br>成员函数... 77
<br>
<br>TBrowser. 79
<br>
<br>数据成员... 79
<br>
<br>成员函数... 80
<br>
<br>TButton. 83
<br>
<br>数据成员... 83
<br>
<br>成员函数... 83
<br>
<br>TCheckBox. 85
<br>
<br>成员函数... 85
<br>
<br>TComboBox. 87
<br>
<br>成员数据... 87
<br>
<br>成员函数... 88
<br>
<br>TControl. 89
<br>
<br>数据成员... 89
<br>
<br>成员函数... 90
<br>
<br>TDialog. 91
<br>
<br>数据成员... 91
<br>
<br>成员函数... 92
<br>
<br>TEdit. 93
<br>
<br>数据成员... 94
<br>
<br>成员函数... 94
<br>
<br>TGroup. 96
<br>
<br>成员函数... 96
<br>
<br>TInputDialog. 97
<br>
<br>数据成员... 97
<br>
<br>成员函数... 98
<br>
<br>TLabel. 98
<br>
<br>成员函数... 99
<br>
<br>TLine. 99
<br>
<br>成员数据... 100
<br>
<br>成员函数... 100
<br>
<br>TList. 101
<br>
<br>成员数据... 101
<br>
<br>成员函数... 102
<br>
<br>TMultiEdit. 104
<br>
<br>成员数据... 105
<br>
<br>成员函数... 106
<br>
<br>TFileDialog. 109
<br>
<br>数据成员... 109
<br>
<br>成员函数... 110
<br>
<br>TPrintDialog. 111
<br>
<br>数据成员... 111
<br>
<br>成员函数... 112
<br>
<br>TRadioButton. 114
<br>
<br>成员函数... 114
<br>
<br>TView. 116
<br>
<br>成员数据... 117
<br>
<br>成员函数... 118
<br>
<br>TWindow. 121
<br>
<br>数据成员... 121
<br>
<br>成员函数... 122
<br>
<br>屏幕处理... 124
<br>
<br>全局外部变量... 124
<br>
<br>定义的颜色常量... 124
<br>
<br>外部函数... 124
<br>
<br>DES加密处理... 126
<br>
<br>全局外部变量... 126
<br>
<br>外部函数... 127
<br>
<br>第四部分 C/C++集成编译系统(IDE)操作指南......... 129
<br>
<br>第一章 C/C++集成编译系统提供的工具简介...... 129
<br>
<br>第二章 C/C++集成编译系统(IDE)安装指南...... 129
<br>
<br>第三章 C/C++集成编译系统(IDE)操作指南...... 129
<br>
<br>3.1 C/C++集成编译系统IDE的启动... 130
<br>
<br>3.2 了解菜单... 130
<br>
<br>3.3 W文件菜单... 130
<br>
<br>3.3.1 新建文件... 130
<br>
<br>3.3.2 打开文件... 131
<br>
<br>3.3.3 保存文件... 131
<br>
<br>3.3.4 文件另存为…... 131
<br>
<br>3.3.5 保存所有文件... 131
<br>
<br>3.3.6 关闭文件... 132
<br>
<br>3.3.7 关闭所有文件... 132
<br>
<br>3.3.8 切换当前文件... 132
<br>
<br>3.3.9 打印当前文件... 132
<br>
<br>3.3.10 UNIX Shell. 132
<br>
<br>3.3.11 退出系统... 132
<br>
<br>3.4 P工程菜单... 133
<br>
<br>3.4.1 创建新工程文件... 133
<br>
<br>3.4.2 打开工程文件... 133
<br>
<br>3.4.3 工程文件另存为…... 133
<br>
<br>3.4.4 关闭工程文件... 133
<br>
<br>3.4.5 编译工程文件... 133
<br>
<br>3.4.6 运行工程文件... 134
<br>
<br>3.5 R编辑菜单... 134
<br>
<br>3.5.1 查找、替换、重复查找/替换... 134
<br>
<br>3.5.2 到文件首... 134
<br>
<br>3.5.3 到文件尾... 134
<br>
<br>3.5.4 到某行... 134
<br>
<br>3.6 S块操作菜单... 135
<br>
<br>3.6.1 定义块首、定义块尾、取消块... 135
<br>
<br>3.6.2 块拷贝... 135
<br>
<br>3.6.3 块删除... 135
<br>
<br>3.6.4 块写... 135
<br>
<br>3.6.5 块读... 135
<br>
<br>3.6.6 文件块拷贝... 136
<br>
<br>3.7 S参数菜单... 136
<br>
<br>3.7.1 定义参数... 136
<br>
<br>3.7.2 类库使用指南... 136
<br>
<br>3.7.3 版本信息... 136
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>第一部分 Object UNIX Class Library初步
<br>第一章 继承窗口
<br>本章重点放在面向对象编程上。读者通过学习本章可以了解UNIX应用程序的构成及其运行机制,同时还能看到如何利用Object UNIX Class Library编写基于UNIX环境下的面向对象程序。
<br>
<br>这里需要说明的是,由于在UNIX环境下的文本模式编程中,没有象Microsoft Windows环境下的Windows图形界面概念以及编程机制,本系统就假设每个应用程序的界面就是一个文本窗口,而UNIX系统本身的字符文本模式就是一个大的隐含的大窗口,基于这个概念,Object UNIX Class Library提供的就是每个应用程序本身的窗口以及每个窗口内部的界面控制和消息传送机制。这里所说的Windows就是每个UNIX环境下应用程序主窗口。
<br>
<br>1.1 面向对象的应用程序编程
<br>面向对象的应用程序编程要求熟悉许多新概念,对于开发一个交互式的UNIX环境下的应用程序,需要进行一系列的判断和界面设计而令人望而却步。Object UNIX Class Library简化了基于UNIX环境下的交互式窗口编程的过程,它使程序员能够把主要的精力放在应用程序的功能上,而不是放在它的格式上。
<br>
<br>借助Object UNIX Class Library,程序员可以使用对象来表示比较复杂的界面窗口操作,Object UNIX Class Library的窗口对象封装了所有窗口需要的数据,能执行公共的窗口操作,并且能够响应应用程序本身的Windows的消息和事件。Object UNIX Class Library的窗口类和应用程序类完全掌握了消息的处理。
<br>
<br>
<br>
<br>1.1.1 一个较好的UNIX接口
<br>Object UNIX Class Library使用了标准的UNIX C/C++的面向对象特征,把UNIX的curses库函数的主要部分封装起来,并提供交互式应用程序程序所需要用户界面元素,从而使程序员同UNIX编程的细节隔离开来。其结果是,只须花少量的时间和精力便能编写应用程序,特别是,Object UNIX Class Library提供了下述三个有益的特点:
<br>
<br>l 窗口信息的封装。
<br>
<br>l 许多curses函数的抽象化并提供许多控件
<br>
<br>l 自动消息响应
<br>
<br>
<br>
<br>1. 封装窗口信息
<br>
<br>Object UNIX Class Library提供了定义UNIX窗口、对话框及窗口控制的操作与
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -