GUI应用程序移植

GUI应用程序移植

肖习攀等, 著

出版社:电子工业出版社

年代:2007

定价:38.0

书籍简介:

本书介绍一种把Windows GUI应用程序移植到Linux的方法——API模拟方法。书中介绍了这种方法的设计思想,以及具体的实现过程。同时,充分探讨了GUI应用程序移植所必然面对的基于不同操作系统的编程模型的差异,揭示了两个系统有关用户界面交互和图形输出基本逻辑结构的一些鲜为人知的特性。全书共分为10章,包括:移植架构,GDI子系统,窗口子系统,消息子系统,用户输入,打印,剪贴板和拖放,标准控件、菜单与对话框,Unicode与国际化,资源的移植。

书籍目录:

第1章移植架构1

1.1移植架构的设计2

1.2API模拟层的结构3

1.3API模拟层的实现方法4

1.3.1X窗口系统4

1.3.2Display和X的服务器/客户机结构5

1.3.3窗口管理器8

1.3.4X事件9

1.3.5GDK和GTK10

1.4编译器差异11

1.5示例程序介绍15

1.6小结15

第2章GDI子系统17

2.1Windows和Linux的图形用户界面输出比较18

2.1.1Windows的图形用户界面输出18

2.1.2Linux的图形用户界面输出19

2.2GDI模拟架构19

2.2.1高级GDI函数20

2.2.2GDI对象21

2.2.3输出设备23

2.3GDI对象详述26

2.3.1概述26

2.3.2位图对象(HBITMAP)34

2.3.3字体对象(HFONT)38

2.3.4裁剪区(HRGN)38

2.3.5笔和刷子(HPEN,HBRUSH)40

2.4屏幕输出41

2.4.1当前对象和绘图模式41

2.4.2屏幕设备和内存设备的差别49

2.4.3DCX_CLIPCHILDREN标志53

2.4.4私有设备上下文54

2.4.5图像输出54

2.4.6其他输出函数57

2.5元文件(metafile)60

2.5.1Windows元文件概述60

2.5.2生成元文件62

2.5.3播放元文件64

2.6小结65

第3章文本输出和字体管理67

3.1文本输出68

3.1.1基本概念68

3.1.2格式化文本输出70

3.1.3非格式化文本输出71

3.2字体管理76

3.2.1字体管理的一般概念76

3.2.2Linux下的字体管理78

3.2.3GDI中的字体管理79

3.2.4几个关键API的模拟实现80

3.3小结86

第4章窗口子系统87

4.1Windows和Linux的窗口系统比较88

4.1.1Windows的窗口系统88

4.1.2Linux的窗口系统89

4.2窗口类90

4.2.1窗口类数据结构90

4.2.2窗口类的注册和撤销92

4.3窗口和窗口句柄93

4.3.1窗口对象93

4.3.2窗口句柄96

4.3.3窗口的创建和销毁97

4.4窗口过程102

4.4.1窗口过程的内部表示103

4.4.2CallWindowProc104

4.4.3DefWindowProc106

4.5窗口绘图108

4.5.1窗口关联的设备上下文108

4.5.2窗口更新区域和重绘111

4.6小结114

第5章消息子系统115

5.1Windows和Linux的消息系统比较116

5.2消息队列116

5.3消息的投递(Post)118

5.4消息的发送(Send)118

5.5消息的提取和分发119

5.6Windows消息钩子(Hook)121

5.7小结124

第6章用户输入125

6.1Windows和Linux的用户输入系统比较126

6.1.1Windows的用户输入系统126

6.1.2Linux的用户输入系统127

6.2键盘输入128

6.2.1将GDK键盘事件转换为Windows键盘事件128

6.2.2从线程的用户输入队列中提取键盘消息130

6.3键盘焦点130

6.3.1Windows的焦点模型131

6.3.2Linux的焦点模型131

6.3.3模拟层键盘焦点系统的设计和实现133

6.4字符消息135

6.5插入符138

6.6鼠标输入139

6.6.1将GDK鼠标事件转换为Windows鼠标事件139

6.6.2从线程的用户输入队列中提取鼠标消息141

6.6.3鼠标光标142

6.7小结143

第7章剪贴板和拖放145

7.1Windows剪贴板和Linux剪贴板的比较146

7.1.1Windows剪贴板146

7.1.2Linux剪贴板148

7.2模拟层剪贴板的设计与实现153

7.2.1剪贴板的管理153

7.2.2格式的管理154

7.2.3数据的交换155

7.3模拟层中拖放的实现158

7.4小结160

第8章标准控件、菜单与对话框161

8.1概述162

8.2ListBox163

8.2.1ListBox控件的风格163

8.2.2ListBox控件的设计与实现166

8.3Edit168

8.3.1Edit控件的风格168

8.3.2Edit控件的消息169

8.3.3Edit控件的设计与实现171

8.4ComboBox176

8.4.1ComboBox控件概述177

8.4.2ComboBox控件消息的处理177

8.5菜单183

8.5.1菜单消息183

8.5.2菜单模板资源184

8.5.3菜单的设计与实现184

8.6对话框189

8.6.1对话框模板结构190

8.6.2对话框的设计与实现191

8.7小结193

第9章打印195

9.1Windows和Linux的打印比较196

9.1.1Windows的打印系统196

9.1.2Linux的打印系统196

9.2模拟层打印模块的设计197

9.2.1使用CUPS和打印机进行通信197

9.2.2使用PostScript完成打印内容模拟197

9.3模拟层打印模块架构199

9.4获取打印机信息202

9.4.1获取打印机数量202

9.4.2获取打印机名称、打印机端口和打印机型号203

9.4.3把PostScript文件送往打印机206

9.5打印选项设置206

9.5.1创建打印作业207

9.5.2设置打印参数208

9.5.3释放内存208

9.6打印色彩管理209

9.6.1Windows打印色彩管理209

9.6.2模拟层打印模块中的色彩管理209

9.7打印坐标系管理210

9.7.1Windows逻辑坐标系和PostScript坐标系211

9.7.2坐标系转化211

9.8WindowsGDI逻辑画笔在打印模块中的实现213

9.8.1设置逻辑画笔的颜色和宽度213

9.8.2设置逻辑画笔样式214

9.8.3实例分析215

9.9WindowsGDI刷子在打印模块中的实现216

9.9.1PostScript刷子图案定义216

9.9.2PostScript刷子填充功能实现216

9.10WindowsGDI位图在打印模块中的实现219

9.10.1PostScript位图数据描述219

9.10.2PostScript位图操作221

9.11打印裁剪方案224

9.11.1裁剪区域运算224

9.11.2设置裁剪区域225

9.12字体的打印226

9.12.1字体打印所需的PostScript命令228

9.12.2PostScript字体字典229

9.12.3字体字典的构造230

9.12.4Pango,PostScript和Freetype的数据单位关系236

9.13小结237

第10章Unicode与国际化239

10.1基本概念240

10.1.1本地化、国际化与全球化240

10.1.2Locale241

10.1.3字符集244

10.1.4Unicode字符集245

10.2Windows系统和Linux系统中的字符集差别246

10.2.1Windows上的字符集246

10.2.2Linux上的字符集248

10.3Windows系统和Linux系统中的Unicode实现差别248

10.3.1Windows上的Unicode248

10.3.2Linux上的Unicode249

10.4ANSI/Unicode与窗口子系统249

10.4.1ANSI代码页249

10.4.2GetACP的实现方案分析250

10.4.3GetACP的实现251

10.4.4A/W窗口254

10.5字符串处理中需要注意的问题258

10.5.1大小写转换258

10.5.2字符串长度258

10.5.3字符串比较259

10.5.4分割字符259

10.6BiDi支持259

10.6.1BiDi的处理260

10.6.2BiDi处理函数实现261

10.7小结267

第11章国际化输入269

11.1概述270

11.2Windows中的国际化输入271

11.2.1输入上下文(InputContext)271

11.2.2输入法管理(IMM)272

11.2.3IME消息及消息过程273

11.3Linux中的国际化输入274

11.3.1Gtk输入上下文(GtkIMContext)275

11.3.2GtkIMContext发送的信号276

11.4模拟层国际化输入的架构277

11.5InputContext设计与实现278

11.5.1IMContext结构设计278

11.5.2ImmGetContext的实现280

11.5.3ImmAssociateContext的实现283

11.6IME组件的控制管理284

11.7与客户窗口的协作284

11.7.1过滤键盘事件284

11.7.2监听焦点改变事件285

11.7.3销毁输入法窗口285

11.7.4GTK信号的处理286

11.8小结287

第12章资源的移植289

12.1资源概述290

12.2资源移植的过程292

12.2.1资源编译工具的模拟293

12.2.2高级资源加载API311

12.2.3低级资源加载API312

12.3小结314

附录AHelloWorldWindows程序在Linux上的模拟315

附录BPostScript语言简介351

附录CLCID与ANSI代码页对应表359

参考文献364

索引365

书籍规格:

书籍详细信息
书名GUI应用程序移植站内查询相似图书
丛书名IBM中国开发中心系列
9787121038327
如需购买下载《GUI应用程序移植》pdf扫描版电子书或查询更多相关信息,请直接复制isbn,搜索即可全网搜索该ISBN
出版地北京出版单位电子工业出版社
版次1版印次1
定价(元)38.0语种简体中文
尺寸26装帧平装
页数印数 5000

书籍信息归属:

GUI应用程序移植是电子工业出版社于2007.02出版的中图分类号为 TP311.52 的主题关于 软件开发 的书籍。