第一章 GUI的基本概念 1
1.1 什么是GUI 1
1.2 GUI的硬件和软件配置 3
1.3 GUI系统对象 4
1.3.1 图形方式 5
1.3.2 内存管理 6
1.3.3 鼠标 8
1.3.4 字体 9
1.3.5 控制和对象 10
1.4 画一个界面 13
第二章 程序语言与GUI的开发 15
2.1 C语言 15
2.1.1 C语言的优缺点 15
2.1.2 Borland C介绍 16
2.2 汇编语言 16
2.3 程序设计语言与图形用户界面的开发 17
2.4 关于C语言的考虑 18
2.4.1 编程风格 18
2.4.2 函数原型 19
2.4.3 内存模式 20
2.4.4 连接的介绍 21
2.5 编写C程序时应注意的问题 22
2.5.1 指针操作 22
2.5.2 变量存储类 23
第三章 显示适配器与屏幕显示程序的编制 25
3.1 显示适配器的种类和设置 25
3.1.1 super VGA简介 25
3.1.2 super VGA原理 26
3.2 TVGA适配器 28
3.1.3 super VGA产品 28
3.2.1 Western Digitial适配器 32
3.2.2 VESA模式 36
3.3 Borland C++的图形库 40
3.4 用户自己的图形函数库 41
第四章 鼠标器接口 43
4.1 鼠标器简介及其作用 43
4.2 鼠标器的工作原理 43
4.3.1 鼠标驱动程序的扩展 45
4.3 鼠标编程 45
4.3.2 初始化鼠标器 53
4.3.3 鼠标的显示与隐藏 54
4.3.4 鼠标器状态 55
4.4 鼠标的制作 58
第五章 窗口 60
5.1 窗口的概念与操作 60
5.2 窗口的具体实现 61
5.3 关闭窗口 65
6.2 存屏的方法 66
第六章 窗口操作的高级技巧 66
6.1 窗口操作的关键问题 66
6.2.1 应用常规内存的方法 67
6.2.2 应用文件流来保存数据的方法 67
6.2.3 其他方法 67
6.3 EMS 68
6.3.1 扩充内存机制的基本要素 68
6.3.2 EMS的工作过程 69
6.3.3 EMM 70
6.3.4 EMS的编程 71
6.3.5 save_scrn和put_scrn函数 73
6.3.6 put_scrn函数 76
6.4 XMS的使用规范 76
6.5 在程序中直接访问扩展内存 77
6.5.1 INT 15与EMS、XMS 78
6.5.2 实模式与保护虚拟模式寻址方式(PVAM)的区别 79
6.5.3 程序中直接访问扩展内存的方法 80
6.5.4 实际编程 81
6.5.5 save_scrn和put_scrn 82
6.6 INT 15.c中的全局变量 84
第七章 文本 86
7.1 三种字体的概念及在图形界面中的作用 86
7.1.1 位图字体(点阵字体) 86
7.1.2 矢量字体 87
7.1.3 轮廓线字体 87
7.1.4 三种字体比较 87
7.2 点阵字体的实际应用 88
7.2.1 西文字体调用规范 88
7.2.2 汉字调用 89
7.2.3 实际应用 90
7.3 矢量字体 92
7.4 轮廓线字体 92
7.4.1 对字体文件的处理 93
7.4.2 设计TrueType指令解释器 94
7.4.3 设计一个通用的绕线法(Winding)填充程序 95
7.5.1 中、西文的识别 96
7.5.2 字符串的显示 96
7.5 中、西文混排 96
7.6 汉字库的处理 98
7.6.1 文件法 98
7.6.2 汉字库驻留常规内存 98
7.6.3 小汉字库的建立 99
7.6.4 EMS方法 99
7.6.5 使用int15法处理汉字库 102
第八章 下拉式菜单 104
8.1 下拉式菜单 104
8.2 菜单的构成部件 104
8.3 菜单对象 105
8.3.1 菜单选择项(MENUITEM) 106
8.3.2 菜单项 107
8.3.3 菜单标题 108
8.3.4 本书的一些约定 109
8.4 菜单初始化 109
8.4.1 init_menu_manager函数 109
8.4.2 add_menu函数 110
8.4.3 画菜单 111
8.5 菜单管理 112
8.5.1 where_mouse函数 113
8.5.2 鼠标控制 116
8.5.3 键盘控制 121
8.6 菜单增强 132
第九章 对象 137
9.1 对象的概念 137
9.2 按钮对象(BUTTON) 138
9.2.1 add_button函数 139
9.2.2 draw_button函数 140
9.2.3 find_button函数 142
9.2.4 track_button函数 143
9.3 检查盒对象(CHECKBOX) 144
9.3.1 add_checkbox函数 145
9.3.2 draw_checkbox函数 145
9.3.3 find_checkbox和track_checkbox 146
9.3.4 检查盒的应用 147
9.4 滚动条对象(SCROLLBAR) 147
9.4.1 add_scroll函数 149
9.4.2 滚动条对象的绘制 152
9.4.4 track_scroll_bar函数 154
9.4.3 find_scroll_bar函数 154
9.5 列表(LIST) 159
9.5.1 str_list结构 160
9.5.2 列表控制 162
9.6 文本控制(TEXTFIELD,EDITFIELD) 167
9.7 对象的综合 170
9.7.1 对象综合例一 171
9.7.2 对象综合例二 173
9.7.3 分析 176
10.2.1 位图文件和位图信息的结构 177
10.2 BMP文件格式 177
第十章 位图 177
10.1 位图的概念 177
10.2.2 位图阵列的结构 179
10.3 位图的对象 182
第十一章 创建对话盒 183
11.1 对话盒 183
11.2 一个简单的对话盒? 186
11.3 mouse_control_oh函数 198
11.4 对文件对话盒的控制 204
11.5 举例 205
第十二章 编写应用程序 208
12.1 再谈图形用户界面 208
12.2 开发应用程序的步骤 209
12.3 注意事项 210
附录一 头文件 211
附录二 SVGA256.ASM 222
附录三 函数 257
参考文献 306