注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)其他編程語(yǔ)言/工具GUI應(yīng)用程序移植:在Linux上模擬Windows API的方法

GUI應(yīng)用程序移植:在Linux上模擬Windows API的方法

GUI應(yīng)用程序移植:在Linux上模擬Windows API的方法

定 價(jià):¥49.80

作 者: 肖習(xí)攀 等著
出版社: 電子工業(yè)出版社
叢編項(xiàng):
標(biāo) 簽: Linux

ISBN: 9787121038327 出版時(shí)間: 2007-03-01 包裝: 膠版紙
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 370 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)介紹一種把Windows GUI應(yīng)用程序移植到Linux的方法——API模擬方法。書(shū)中介紹了這種方法的設(shè)計(jì)思想,以及具體的實(shí)現(xiàn)過(guò)程。同時(shí),充分探討了GUI應(yīng)用程序移植所必然面對(duì)的基于不同操作系統(tǒng)的編程模型的差異,揭示了兩個(gè)系統(tǒng)有關(guān)用戶界面交互和圖形輸出基本邏輯結(jié)構(gòu)的一些鮮為人知的特性。全書(shū)共分為12章,包括:移植架構(gòu),GDI子系統(tǒng),文本輸出和字體管理,窗口子系統(tǒng),消息子系統(tǒng),用戶輸入,剪貼板和拖放,標(biāo)準(zhǔn)控件、菜單與對(duì)話框,打印,Unicode與國(guó)際化,國(guó)際化輸入和資源的移植。.本書(shū)起點(diǎn)較高,適合具有相當(dāng)基礎(chǔ)的軟件開(kāi)發(fā)人員、高年級(jí)計(jì)算機(jī)或相關(guān)領(lǐng)域的學(xué)生,以及那些可能需要為企業(yè)決策者提供技術(shù)和信息支持的架構(gòu)師。由于本書(shū)是以GUI應(yīng)用程序?yàn)楸尘皝?lái)講述的,所以對(duì)于任何在Windows和Linux系統(tǒng)之一進(jìn)行應(yīng)用程序開(kāi)發(fā)或移植工作的工程師,以及任何C/C++程序員和工程師,都是一本具有較高參考價(jià)值的圖書(shū)。本書(shū)介紹一種把Windows GUI應(yīng)用程序移植到Linux的方法——API模擬方法的設(shè)計(jì)思想,以及具體的實(shí)現(xiàn)過(guò)程;并就API移植所涉及到的源系統(tǒng)和目標(biāo)系統(tǒng)的特性和差別進(jìn)行深入剖析和探討;對(duì)移植工作中遇到的許多挑戰(zhàn)和困難提出了行之有效的解決方案。..本書(shū)充分探討了GUI應(yīng)用程序移植所必然面對(duì)的基于不同操作系統(tǒng)的編程模型的差異,揭示了兩個(gè)系統(tǒng)有關(guān)用戶界面交互和圖形輸出基本邏輯結(jié)構(gòu)的一些鮮為人知的特性,具有較高參考價(jià)值。書(shū)中提供了大量的例子程序,使讀者能夠快速理解不同方法的實(shí)現(xiàn)原理和具體應(yīng)用。同時(shí),還給出了一個(gè)完整的Windows應(yīng)用程序,讀者利用其中所介紹的方法和實(shí)現(xiàn),可以自行實(shí)施一個(gè)精巧而完整的從Windows到Linux的應(yīng)用移植過(guò)程,從而真正掌握這種方法,并立即將其應(yīng)用到實(shí)際項(xiàng)目之中。...

作者簡(jiǎn)介

  肖習(xí)攀,清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系碩士。IBM中國(guó)開(kāi)發(fā)中心高級(jí)軟件工程師。從2003年4月加入IBM中國(guó)開(kāi)發(fā)中心至今,一直從事旨在提高企業(yè)生產(chǎn)效率的應(yīng)用軟件開(kāi)發(fā)。多個(gè)項(xiàng)目開(kāi)發(fā)組長(zhǎng)。經(jīng)歷涉及Windows、Linux和Macintosh等平臺(tái),興趣包括圖形用戶界面移植和企業(yè)協(xié)作式應(yīng)用軟件開(kāi)發(fā)。閻小兵,在中國(guó)科學(xué)院計(jì)算技術(shù)研究所獲得碩士。1999年加入IBM中國(guó)公司?,F(xiàn)任IBM中國(guó)開(kāi)發(fā)中心高級(jí)開(kāi)發(fā)經(jīng)理。曾參與IBM CICS移植,IBM WebSphere Commerce移植,IBM Productivity Tools開(kāi)發(fā)與項(xiàng)目管理等。目前主要工作領(lǐng)域是下一代企業(yè)級(jí)工作場(chǎng)所協(xié)作軟件的開(kāi)發(fā)。對(duì)跨平臺(tái)(Windows, Linux, Macintosh)軟件開(kāi)發(fā)和移植,以及大型軟件開(kāi)發(fā)過(guò)程管理和項(xiàng)目管理有著豐富的經(jīng)驗(yàn)。賈迎樂(lè),北京郵電大學(xué)信息工程學(xué)院碩士。目前是IBM中國(guó)軟件開(kāi)發(fā)中心高級(jí)軟件工程師,從事IBM產(chǎn)品在Linux平臺(tái)上的開(kāi)發(fā)和移植工作。在C/C++編程語(yǔ)言,Windows和Linux圖形用戶界面應(yīng)用程序的開(kāi)發(fā)和移植等方面有深入的研究。龔奕平,清華大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)系學(xué)士,多倫多大學(xué)計(jì)算機(jī)科學(xué)系碩士。IBM中國(guó)開(kāi)發(fā)中心高級(jí)軟件工程師?,F(xiàn)主要從事IBM產(chǎn)品的研究和開(kāi)發(fā)工作。研究興趣包括Windows應(yīng)用程序跨平臺(tái)移植,GUI開(kāi)發(fā),以及網(wǎng)絡(luò)設(shè)備開(kāi)發(fā)等。曾在國(guó)內(nèi)外期刊雜志上發(fā)表多篇學(xué)術(shù)和技術(shù)文章。

圖書(shū)目錄

第1章  移植架構(gòu)    1
1.1  移植架構(gòu)的設(shè)計(jì)    2
1.2  API模擬層的結(jié)構(gòu)    3
1.3  API模擬層的實(shí)現(xiàn)方法    4
1.3.1  X窗口系統(tǒng)    4
1.3.2  Display和X的服務(wù)器/客戶機(jī)結(jié)構(gòu)    5
1.3.3  窗口管理器    8
1.3.4  X事件    9
1.3.5  GDK和GTK    10
1.4  編譯器差異    11
1.5  示例程序介紹    15
1.6  小結(jié)    15
第2章  GDI子系統(tǒng)    17
2.1  Windows和Linux的圖形用戶界面輸出比較    18
2.1.1  Windows的圖形用戶界面輸出    18
2.1.2  Linux的圖形用戶界面輸出    19
2.2  GDI模擬架構(gòu)    19
2.2.1  高級(jí)GDI函數(shù)    20
2.2.2  GDI對(duì)象    21
2.2.3  輸出設(shè)備    23
2.3  GDI對(duì)象詳述    26
2.3.1  概述    26
2.3.2  位圖對(duì)象(HBITMAP)    34
2.3.3  字體對(duì)象(HFONT)    38
2.3.4  裁剪區(qū)(HRGN)    38
2.3.5  筆和刷子(HPEN,HBRUSH)    40
2.4  屏幕輸出    41
2.4.1  當(dāng)前對(duì)象和繪圖模式    41
2.4.2  屏幕設(shè)備和內(nèi)存設(shè)備的差別    49
2.4.3  DCX_CLIPCHILDREN標(biāo)志    53
2.4.4  私有設(shè)備上下文    54
2.4.5  圖像輸出    54
2.4.6  其他輸出函數(shù)    57
2.5  元文件(metafile)    60
2.5.1  Windows元文件概述    60
2.5.2  生成元文件    62
2.5.3  播放元文件    64
2.6  小結(jié)    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.2  Linux下的字體管理    78
3.2.3  GDI中的字體管理    79
3.2.4  幾個(gè)關(guān)鍵API的模擬實(shí)現(xiàn)    80
3.3  小結(jié)    86
第4章  窗口子系統(tǒng)    87
4.1  Windows和Linux的窗口系統(tǒng)比較    88
4.1.1  Windows的窗口系統(tǒng)    88
4.1.2  Linux的窗口系統(tǒng)    89
4.2  窗口類    90
4.2.1  窗口類數(shù)據(jù)結(jié)構(gòu)    90
4.2.2  窗口類的注冊(cè)和撤銷    92
4.3  窗口和窗口句柄    93
4.3.1  窗口對(duì)象    93
4.3.2  窗口句柄    96
4.3.3  窗口的創(chuàng)建和銷毀    97
4.4  窗口過(guò)程    102
4.4.1  窗口過(guò)程的內(nèi)部表示    103
4.4.2  CallWindowProc    104
4.4.3  DefWindowProc    106
4.5  窗口繪圖    108
4.5.1  窗口關(guān)聯(lián)的設(shè)備上下文    108
4.5.2  窗口更新區(qū)域和重繪    111
4.6  小結(jié)    114
第5章  消息子系統(tǒng)    115
5.1  Windows和Linux的消息系統(tǒng)比較    116
5.2  消息隊(duì)列    116
5.3  消息的投遞(Post)    118
5.4  消息的發(fā)送(Send)    118
5.5  消息的提取和分發(fā)    119
5.6  Windows消息鉤子(Hook)    121
5.7  小結(jié)    124
第6章  用戶輸入    125
6.1  Windows和Linux的用戶輸入系統(tǒng)比較    126
6.1.1  Windows的用戶輸入系統(tǒng)    126
6.1.2  Linux的用戶輸入系統(tǒng)    127
6.2  鍵盤輸入    128
6.2.1  將GDK鍵盤事件轉(zhuǎn)換為Windows鍵盤事件    128
6.2.2  從線程的用戶輸入隊(duì)列中提取鍵盤消息    130
6.3  鍵盤焦點(diǎn)    130
6.3.1  Windows的焦點(diǎn)模型    131
6.3.2  Linux的焦點(diǎn)模型    131
6.3.3  模擬層鍵盤焦點(diǎn)系統(tǒng)的設(shè)計(jì)和實(shí)現(xiàn)    133
6.4  字符消息    135
6.5  插入符    138
6.6  鼠標(biāo)輸入    139
6.6.1  將GDK鼠標(biāo)事件轉(zhuǎn)換為Windows鼠標(biāo)事件    139
6.6.2  從線程的用戶輸入隊(duì)列中提取鼠標(biāo)消息    141
6.6.3  鼠標(biāo)光標(biāo)    142
6.7  小結(jié)    143
第7章  剪貼板和拖放    145
7.1  Windows剪貼板和Linux剪貼板的比較    146
7.1.1  Windows剪貼板    146
7.1.2  Linux剪貼板    148
7.2  模擬層剪貼板的設(shè)計(jì)與實(shí)現(xiàn)    153
7.2.1  剪貼板的管理    153
7.2.2  格式的管理    154
7.2.3  數(shù)據(jù)的交換    155
7.3  模擬層中拖放的實(shí)現(xiàn)    158
7.4  小結(jié)    160
第8章  標(biāo)準(zhǔn)控件、菜單與對(duì)話框    161
8.1  概述    162
8.2  List Box    163
8.2.1  List Box控件的風(fēng)格    163
8.2.2  List Box控件的設(shè)計(jì)與實(shí)現(xiàn)    166
8.3  Edit    168
8.3.1  Edit控件的風(fēng)格    168
8.3.2  Edit控件的消息    169
8.3.3  Edit控件的設(shè)計(jì)與實(shí)現(xiàn)    171
8.4  ComboBox    176
8.4.1  ComboBox控件概述    177
8.4.2  ComboBox控件消息的處理    177
8.5  菜單    183
8.5.1  菜單消息    183
8.5.2  菜單模板資源    184
8.5.3  菜單的設(shè)計(jì)與實(shí)現(xiàn)    184
8.6  對(duì)話框    189
8.6.1  對(duì)話框模板結(jié)構(gòu)    190
8.6.2  對(duì)話框的設(shè)計(jì)與實(shí)現(xiàn)    191
8.7  小結(jié)    193
第9章  打印    195
9.1  Windows和Linux的打印比較    196
9.1.1  Windows的打印系統(tǒng)    196
9.1.2  Linux的打印系統(tǒng)    196
9.2  模擬層打印模塊的設(shè)計(jì)    197
9.2.1  使用CUPS和打印機(jī)進(jìn)行通信    197
9.2.2  使用PostScript完成打印內(nèi)容模擬    197
9.3  模擬層打印模塊架構(gòu)    199
9.4  獲取打印機(jī)信息    202
9.4.1  獲取打印機(jī)數(shù)量    202
9.4.2  獲取打印機(jī)名稱、打印機(jī)端口和打印機(jī)型號(hào)    203
9.4.3  把PostScript文件送往打印機(jī)    206
9.5  打印選項(xiàng)設(shè)置    206
9.5.1  創(chuàng)建打印作業(yè)    207
9.5.2  設(shè)置打印參數(shù)    208
9.5.3  釋放內(nèi)存    208
9.6  打印色彩管理    209
9.6.1  Windows打印色彩管理    209
9.6.2  模擬層打印模塊中的色彩管理    209
9.7  打印坐標(biāo)系管理    210
9.7.1  Windows邏輯坐標(biāo)系和PostScript坐標(biāo)系    211
9.7.2  坐標(biāo)系轉(zhuǎn)化    211
9.8  Windows GDI邏輯畫筆在打印模塊中的實(shí)現(xiàn)    213
9.8.1  設(shè)置邏輯畫筆的顏色和寬度    213
9.8.2  設(shè)置邏輯畫筆樣式    214
9.8.3  實(shí)例分析    215
9.9  Windows GDI刷子在打印模塊中的實(shí)現(xiàn)    216
9.9.1  PostScript刷子圖案定義    216
9.9.2  PostScript刷子填充功能實(shí)現(xiàn)    216
9.10  Windows GDI位圖在打印模塊中的實(shí)現(xiàn)    219
9.10.1  PostScript位圖數(shù)據(jù)描述    219
9.10.2  PostScript位圖操作    221
9.11  打印裁剪方案    224
9.11.1  裁剪區(qū)域運(yùn)算    224
9.11.2  設(shè)置裁剪區(qū)域    225
9.12  字體的打印    226
9.12.1  字體打印所需的PostScript命令    228
9.12.2  PostScript字體字典    229
9.12.3  字體字典的構(gòu)造    230
9.12.4  Pango, PostScript和Freetype的數(shù)據(jù)單位關(guān)系    236
9.13  小結(jié)    237
第10章  Unicode與國(guó)際化    239
10.1  基本概念    240
10.1.1  本地化、國(guó)際化與全球化    240
10.1.2  Locale    241
10.1.3  字符集    244
10.1.4  Unicode字符集    245
10.2  Windows系統(tǒng)和Linux系統(tǒng)中的字符集差別    246
10.2.1  Windows上的字符集    246
10.2.2  Linux上的字符集    248
10.3  Windows系統(tǒng)和Linux系統(tǒng)中的Unicode實(shí)現(xiàn)差別    248
10.3.1  Windows上的Unicode    248
10.3.2  Linux上的Unicode    249
10.4  ANSI/Unicode與窗口子系統(tǒng)    249
10.4.1  ANSI代碼頁(yè)    249
10.4.2  GetACP的實(shí)現(xiàn)方案分析    250
10.4.3  GetACP的實(shí)現(xiàn)    251
10.4.4  A/W窗口    254
10.5  字符串處理中需要注意的問(wèn)題    258
10.5.1  大小寫轉(zhuǎn)換    258
10.5.2  字符串長(zhǎng)度    258
10.5.3  字符串比較    259
10.5.4  分割字符    259
10.6  BiDi支持    259
10.6.1  BiDi的處理    260
10.6.2  BiDi處理函數(shù)實(shí)現(xiàn)    261
10.7  小結(jié)    267
第11章  國(guó)際化輸入    269
11.1  概述    270
11.2  Windows中的國(guó)際化輸入    271
11.2.1  輸入上下文(Input Context)    271
11.2.2  輸入法管理(IMM)    272
11.2.3  IME消息及消息過(guò)程    273
11.3  Linux中的國(guó)際化輸入    274
11.3.1  Gtk輸入上下文(GtkIMContext)    275
11.3.2  GtkIMContext發(fā)送的信號(hào)    276
11.4  模擬層國(guó)際化輸入的架構(gòu)    277
11.5  Input Context設(shè)計(jì)與實(shí)現(xiàn)    278
11.5.1  IMContext結(jié)構(gòu)設(shè)計(jì)    278
11.5.2  ImmGetContext的實(shí)現(xiàn)    280
11.5.3  ImmAssociateContext的實(shí)現(xiàn)    283
11.6  IME組件的控制管理    284
11.7  與客戶窗口的協(xié)作    284
11.7.1  過(guò)濾鍵盤事件    284
11.7.2  監(jiān)聽(tīng)焦點(diǎn)改變事件    285
11.7.3  銷毀輸入法窗口    285
11.7.4  GTK信號(hào)的處理    286
11.8  小結(jié)    287
第12章  資源的移植    289
12.1  資源概述    290
12.2  資源移植的過(guò)程    292
12.2.1  資源編譯工具的模擬    293
12.2.2  高級(jí)資源加載API    311
12.2.3  低級(jí)資源加載API    312
12.3  小結(jié)    314
附錄A  Hello World Windows程序在Linux上的模擬    315
附錄B  PostScript語(yǔ)言簡(jiǎn)介    351
附錄C  LCID與ANSI代碼頁(yè)對(duì)應(yīng)表    359
參考文獻(xiàn)    364
索引    365

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)