?? 在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 + -