圖書信息
MFC窗口程序設(shè)計(jì)

-
【作 者】姚領(lǐng)田 等編著
【I S B N 】978-7-5084-4606-6
【責(zé)任編輯】王艷燕
【適用讀者群】科技
【出版時間】2007-05-01
【開 本】16開本
【裝幀信息】平裝(光膜)
【版 次】第1版
【頁 數(shù)】
【千字?jǐn)?shù)】
【印 張】
【定 價】¥58
【叢 書】萬水計(jì)算機(jī)技術(shù)實(shí)用大全系列
【備注信息】
圖書詳情
簡介
本書特色
前言
章節(jié)列表
精彩閱讀
下載資源
相關(guān)圖書
窗口是Windows GUI程序的基礎(chǔ),在Windows程序設(shè)計(jì)中,窗口編程具有舉足輕重的地位。本書深入淺出,全面地介紹了MFC中窗口程序的設(shè)計(jì)方法。內(nèi)容主要包括MFC窗口基類CWnd、框架窗口、文檔-視圖窗口、分割窗口、控制欄窗口、對話框、屬性表窗口以及控件窗口等,最后還對程序設(shè)計(jì)中的調(diào)試技術(shù)進(jìn)行了簡要介紹,以幫助讀者對程序進(jìn)行調(diào)試。
本書內(nèi)容豐富翔實(shí)、講解細(xì)致,對涉及MFC實(shí)現(xiàn)理論的部分均進(jìn)行了較為深入的剖析,并且結(jié)合工程實(shí)踐給出了相應(yīng)的實(shí)現(xiàn)代碼,具有較強(qiáng)的針對性,力求讓讀者通過親自動手做而掌握使用MFC進(jìn)行窗口程序設(shè)計(jì)的方法,學(xué)習(xí)盡可能多的知識。
本書主要定位于初、中級讀者,同時也可用作培訓(xùn)班以及高校師生的參考教材。
本書附帶的程序源代碼可從中國水利水電出版社網(wǎng)站免費(fèi)下載,網(wǎng)址為:http://www.waterpub.com.cn/softdown/。
前言
第1章 Windows窗口與CWnd對象 1
1.1 窗口和CWnd對象 1
1.2 窗口與CWnd對象的映射關(guān)系 1
1.2.1 句柄的概念 1
1.2.2 句柄映射機(jī)制 2
1.2.3 關(guān)聯(lián)窗口對象與CWnd類對象 6
1.2.4 從窗口對象獲取CWnd類對象 9
1.2.5 解除窗口對象與CWnd類對象的關(guān)聯(lián) 11
1.2.6 臨時映射對象的清除 13
1.3 窗口的創(chuàng)建 15
1.3.1 傳統(tǒng)的Windows程序設(shè)計(jì)中的窗口類注冊 15
1.3.2 MFC應(yīng)用的窗口類注冊 16
1.3.3 SDI中的窗口創(chuàng)建順序 21
1.4 窗口的銷毀 22
1.4.1 Windows和應(yīng)用的交互 22
1.4.2 使用CWnd::PostNcDestroy自動銷毀 22
1.4.3 銷毀窗口對象總結(jié) 23
1.5 窗口的編程內(nèi)容 24
1.5.1 窗口消息傳遞過程 24
1.5.2 消息映射 26
1.5.3 繪制窗口 26
1.5.4 窗口的設(shè)備環(huán)境 27
1.6 繪制窗口類CDrawManager 29
1.6.1 CDrawManager成員簡介 29
1.6.2 繪制原理 30
1.7 小結(jié) 34
第2章 CWnd類綜述 35
2.1 CWnd類基礎(chǔ) 35
2.2 CWnd類成員函數(shù)簡介 35
2.2.1 CWnd類成員函數(shù)分類 35
2.2.2 構(gòu)造析構(gòu)成員函數(shù) 36
2.2.3 初始化成員函數(shù) 37
2.2.4 對話框項(xiàng)成員函數(shù) 39
2.2.5 處理初始化消息的成員函數(shù) 41
2.2.6 窗口狀態(tài)成員函數(shù) 42
2.2.7 處理系統(tǒng)消息的成員函數(shù) 43
2.2.8 窗口大小和位置有關(guān)的成員函數(shù) 45
2.2.9 菜單成員函數(shù) 48
2.2.10 處理一般消息的成員函數(shù) 48
2.2.11 訪問窗口的成員函數(shù) 55
2.2.12 工具提示成員函數(shù) 59
2.2.13 處理控件消息的成員函數(shù) 60
2.2.14 處理更新/繪制的成員函數(shù) 62
2.2.15 處理輸入消息的成員函數(shù) 66
2.2.16 處理坐標(biāo)映射的成員函數(shù) 67
2.2.17 處理非客戶區(qū)消息的成員函數(shù) 68
2.2.18 處理窗口文本的成員函數(shù) 70
2.2.19 處理窗口消息的成員函數(shù) 71
2.2.20 處理滾動的成員函數(shù) 72
2.2.21 剪貼板成員函數(shù) 73
2.2.22 剪貼板消息處理函數(shù) 74
2.2.23 可重載的成員函數(shù) 75
2.2.24 脫字符成員函數(shù) 77
2.2.25 其他 78
2.3 CWnd派生類 80
2.3.1 框架窗口類 80
2.3.2 視圖類 81
2.3.3 對話框類 82
2.3.4 控件類 83
2.3.5 控制條類 85
2.3.6 屬性表類 85
2.4 編程實(shí)例 85
2.4.1 創(chuàng)建工程 85
2.4.2 添加代碼 86
2.5 小結(jié) 88
第3章 框架窗口 89
3.1 CFrameWnd成員一覽 89
3.1.1 CFrameWnd類數(shù)據(jù)成員 89
3.1.2 CFrameWnd類構(gòu)造函數(shù) 89
3.1.3 CFrameWnd類初始化函數(shù) 90
3.1.4 CFrameWnd類操作函數(shù) 91
3.1.5 CFrameWnd類可重載函數(shù) 93
3.1.6 CFrameWnd類命令處理函數(shù) 94
3.2 SDI框架窗口的創(chuàng)建過程 94
3.2.1 框架窗口的創(chuàng)建 94
3.2.2 使用LoadFrame創(chuàng)建框架窗口 95
3.2.3 使用AfxEndDeferRegisterClass注冊窗口類 96
3.2.4 使用GetIconWndClass獲取窗口類 97
3.2.5 使用PreCreateWindow注冊窗口類 98
3.2.6 使用CFrameWnd::Create創(chuàng)建框架窗口 99
3.2.7 框架窗口子窗口的初始化 101
3.3 SDI框架窗口的銷毀 104
3.3.1 響應(yīng)WM_CLOSE消息 104
3.3.2 銷毀Windows窗口對象 106
3.3.3 銷毀C++對象 107
3.4 SDI框架窗口對命令消息及控件通知的處理 108
3.4.1 命令消息 108
3.4.2 控件通知 108
3.4.3 框架對WM_COMMAND的處理 109
3.4.4 框架對WM_NOTIFY的處理 114
3.5 MDI框架窗口的創(chuàng)建及銷毀 114
3.5.1 SDI與MDI的主要區(qū)別 115
3.5.2 主MDI框架窗口的創(chuàng)建 115
3.5.3 MDI客戶窗口及其創(chuàng)建 116
3.5.4 MDI子框架窗口的創(chuàng)建 118
3.5.5 框架窗口與MDI客戶窗口之間的關(guān)系 120
3.5.6 MDI框架窗口的銷毀 121
3.6 MDI框架窗口對命令消息的處理 121
3.6.1 主MDI框架窗口的命令處理 121
3.6.2 主MDI框架窗口的命令分發(fā) 122
3.6.3 MDI框架窗口的窗口過程 123
3.7 框架窗口的更新機(jī)制 124
3.7.1 命令UI類 124
3.7.2 用于更新操作的成員CCmdUI::DoUpdate 125
3.8 框架窗口的客戶區(qū)管理機(jī)制 126
3.9 小結(jié) 127
第4章 文檔—視圖窗口 129
4.1 文檔-視圖模型 129
4.1.1 文檔-視圖模型簡介 129
4.1.2 文檔-視圖類 130
4.1.3 CView的派生類 130
4.1.4 創(chuàng)建工程 131
4.2 文檔-視圖重要成員 131
4.2.1 文檔成員 131
4.2.2 視圖成員 133
4.3 對象的創(chuàng)建 135
4.3.1 創(chuàng)建模板對象 135
4.3.2 創(chuàng)建文檔對象 136
4.3.3 創(chuàng)建框架對象 139
4.3.4 創(chuàng)建視圖對象 140
4.3.5 各對象間的關(guān)系 143
4.4 文檔-視圖的初始化和清除 145
4.4.1 初始化和清除的時機(jī) 145
4.4.2 初始化和清除的過程 146
4.5 命令消息在視圖窗口中的分發(fā)過程 146
4.5.1 視圖窗口對命令消息的處理 146
4.5.2 文檔類對命令消息的處理 147
4.5.3 命令消息的處理函數(shù)的調(diào)用過程 148
4.6 視圖窗口的使用 150
4.6.1 在視圖中繪制 150
4.6.2 通過視圖解釋用戶輸入 151
4.6.3 多視圖窗口 151
4.7 定制控件視圖 152
4.7.1 指導(dǎo)思想 152
4.7.2 具體實(shí)現(xiàn) 152
4.8 編程實(shí)例 153
4.8.1 資源編輯 154
4.8.2 為工程添加新類 154
4.8.3 主框架實(shí)現(xiàn) 155
4.8.4 列表視圖實(shí)現(xiàn) 158
4.8.5 表單視圖實(shí)現(xiàn) 159
4.8.6 地址欄實(shí)現(xiàn) 161
4.9 小結(jié) 163
第5章 分割窗口 164
5.1 窗口分割 164
5.2 CSplitterWnd類 165
5.2.1 CSplitterWnd類成員一覽 165
5.2.2 創(chuàng)建動態(tài)分割窗口 167
5.2.3 創(chuàng)建靜態(tài)分割窗口 170
5.2.4 創(chuàng)建分割窗口的窗格 171
5.2.5 設(shè)置窗格信息 173
5.2.6 繪制分割窗口的組件 174
5.2.7 繪制拖動分割條 176
5.3 分割窗口中的通信機(jī)制 177
5.3.1 有文檔相連的視圖之間的通信 178
5.3.2 無文檔視圖與文檔關(guān)聯(lián)視圖之間的通信 178
5.3.3 無文檔關(guān)聯(lián)視圖之間的通信 178
5.3.4 任意視圖之間的通信 179
5.4 分割窗口中的命令路由 179
5.4.1 通過文檔對象路由視圖窗口 179
5.4.2 通過分割窗口路由視圖窗口 180
5.4.3 通用路由方法 181
5.5 編程實(shí)例 181
5.5.1 工程的創(chuàng)建 181
5.5.2 分割窗口的創(chuàng)建 182
5.5.3 自定義分割窗口類CSplitterWndEx 184
5.5.4 位圖信息窗格 189
5.5.5 原始位圖窗格 196
5.5.6 處理后位圖窗格 197
5.6 位圖類 199
5.6.1 位圖 199
5.6.2 位圖類 199
5.7 小結(jié) 202
第6章 控制欄窗口 203
6.1 控制欄綜述 203
6.1.1 控制欄簡介 203
6.1.2 CControlBar類成員 203
6.1.3 控制欄布局算法 206
6.1.4 控制欄對消息的處理 209
6.1.5 布局算法應(yīng)用實(shí)例 214
6.2 對話條窗口 215
6.2.1 工程的創(chuàng)建 215
6.2.2 對話條窗口的創(chuàng)建 216
6.2.3 對話條窗口的UI對象更新 219
6.2.4 接收來自主菜單或工具欄的命令消息 219
6.2.5 對話條實(shí)例分析 220
6.3 伸縮欄窗口 222
6.3.1 類CReBar和CReBarCtrl 223
6.3.2 CReBar成員介紹 223
6.3.3 在Rebar控件中使用對話條 224
6.3.4 伸縮欄的UI對象更新 225
6.3.5 伸縮欄實(shí)例分析 225
6.4 工具欄窗口 226
6.4.1 工具欄窗口簡介 226
6.4.2 工具欄成員一覽 227
6.4.3 工具欄窗口的創(chuàng)建 227
6.4.4 在工具欄中使用圖像列表 230
6.4.5 在工具欄中使用下拉按鈕 230
6.4.6 工具欄窗口的UI對象更新 232
6.4.7 在工具欄上顯示文本 233
6.4.8 在工具欄上創(chuàng)建控件 235
6.4.9 工具欄熱點(diǎn)按鈕的切換 239
6.5 狀態(tài)欄窗口 239
6.5.1 狀態(tài)欄窗口簡介 240
6.5.2 狀態(tài)欄成員一覽 240
6.5.3 狀態(tài)欄窗口的創(chuàng)建 241
6.5.4 為狀態(tài)欄添加窗格 242
6.5.5 狀態(tài)欄窗口的UI對象更新 243
6.5.6 在狀態(tài)欄上創(chuàng)建控件 244
6.5.7 狀態(tài)欄中的消息響應(yīng) 246
6.5.8 改變狀態(tài)欄的大小 247
6.6 主框架對控制欄的控制 248
6.6.1 工具箱的顯隱 248
6.6.2 工具箱的布局 248
6.6.3 工具箱和對話條的通信 249
6.7 小結(jié) 250
第7章 對話框 251
7.1 對話框及MFC相關(guān)類 251
7.1.1 對話框與CDialog類 251
7.1.2 工程的創(chuàng)建 252
7.2 模態(tài)對話框 254
7.2.1 添加對話框及其類 254
7.2.2 創(chuàng)建模態(tài)對話框 256
7.2.3 模態(tài)對話框消息循環(huán) 264
7.2.4 模態(tài)的終結(jié) 268
7.3 非模態(tài)對話框 270
7.3.1 添加對話框及其類 270
7.3.2 創(chuàng)建非模態(tài)對話框 271
7.3.3 模態(tài)對話框與非模態(tài)對話框的區(qū)別 273
7.4 對話框數(shù)據(jù)交換和驗(yàn)證 273
7.4.1 CDataExchange類簡介 273
7.4.2 數(shù)據(jù)交換和驗(yàn)證 274
7.5 對話框中更新機(jī)制的實(shí)現(xiàn) 277
7.5.1 CWnd::UpdateDialogControls成員 278
7.5.2 使用WM_KICKIDLE鉤子實(shí)現(xiàn)UI更新 280
7.5.3 在模態(tài)檢測ContinueModal中實(shí)現(xiàn)UI更新 281
7.5.4 按鈕和編輯控件更新的實(shí)現(xiàn) 281
7.6 對話框背景及背景透明的控件 282
7.6.1 設(shè)置對話框的背景顏色 283
7.6.2 設(shè)置對話框背景位圖 283
7.6.3 繪制對話框背景 285
7.6.4 對話框控件透明背景的實(shí)現(xiàn) 287
7.6.5 MFC處理對話框及其控件顏色和背景的實(shí)現(xiàn) 288
7.7 為對話框添加工具欄 289
7.7.1 創(chuàng)建工具欄 290
7.7.2 為工具欄添加提示信息 290
7.7.3 控制工具欄的顯隱狀態(tài) 292
7.8 為對話框添加狀態(tài)欄 292
7.8.1 創(chuàng)建狀態(tài)欄 293
7.8.2 設(shè)置狀態(tài)欄窗格信息 293
7.8.3 控制狀態(tài)欄的顯隱狀態(tài) 296
7.8.4 狀態(tài)欄中系統(tǒng)時間的更新方法 296
7.9 為對話框添加菜單 297
7.10 對話框中特定鍵的處理 298
7.11 對話框擴(kuò)展與收縮 300
7.12 控件在對話框中的應(yīng)用 302
7.12.1 “關(guān)于”對話框的滾動字幕控件 302
7.12.2 顯示Gif圖片的控件 302
7.13 其他實(shí)現(xiàn) 303
7.14 小結(jié) 303
第8章 屬性表窗口 304
8.1 屬性表相關(guān)類 304
8.2 屬性表類 304
8.2.1 屬性表類簡介 304
8.2.2 屬性表類成員 305
8.3 屬性頁類 309
8.3.1 屬性頁類簡介 309
8.3.2 重要成員函數(shù)介紹 310
8.4 創(chuàng)建屬性表 312
8.4.1 創(chuàng)建模態(tài)屬性表 313
8.4.2 創(chuàng)建非模態(tài)屬性表 313
8.5 處理“應(yīng)用”按鈕 314
8.5.1 屬性表處理 314
8.5.2 屬性頁處理 315
8.6 在對話框中使用屬性表 316
8.6.1 工程的創(chuàng)建 316
8.6.2 工程資源的添加 318
8.6.3 屬性表類實(shí)現(xiàn) 319
8.6.4 “一般信息”頁編程 319
8.6.5 “類信息”頁編程 325
8.6.6 主對話框窗口編程 326
8.7 樹形屬性表的實(shí)現(xiàn) 332
8.7.1 工程的創(chuàng)建 333
8.7.2 CPropPageFrame類 334
8.7.3 CTreePropSheet類 334
8.7.4 屬性表“應(yīng)用”按鈕的編程 335
8.7.5 屬性頁編程 336
8.7.6 屬性表接口編程 336
8.8 擴(kuò)展屬性表類——CTreePropSheet 338
8.8.1 屬性表的初始化 338
8.8.2 樹形控件中屬性頁項(xiàng)的創(chuàng)建和填充 342
8.8.3 結(jié)束當(dāng)前屬性頁 345
8.8.4 響應(yīng)樹形控件中屬性頁項(xiàng)的變化 346
8.8.5 更新屬性頁的標(biāo)題 347
8.9 小結(jié) 349
第9章 控件窗口 350
9.1 控件窗口 350
9.1.1 控件窗口的創(chuàng)建 352
9.1.2 派生公共控件窗口 353
9.2 動畫控件 354
9.2.1 CAnimateCtrl類 354
9.2.2 動畫控件的使用 355
9.2.3 動畫控件的局限 357
9.3 按鈕控件 358
9.3.1 按鈕控件的風(fēng)格類型 358
9.3.2 CButton類 358
9.3.3 CBitmapButton類 360
9.3.4 按鈕控件的通知消息 360
9.4 組合框/擴(kuò)展組合框控件 361
9.4.1 組合框/擴(kuò)展組合框的風(fēng)格類型 361
9.4.2 CcomboBox類 362
9.4.3 CComboBoxEx類 366
9.4.4 擴(kuò)展組合框與圖像列表 367
9.5 時間提取器/月歷控件 368
9.5.1 時間提取器/月歷控件的風(fēng)格類型 368
9.5.2 CDateTimeCtrl類 369
9.5.3 CMonthCalCtrl類 371
9.6 圖像列表控件 373
9.6.1 CImageList類 373
9.6.2 圖像列表的類型 374
9.6.3 圖像列表的編程 374
9.7 編輯控件/靜態(tài)控件 375
9.7.1 編輯控件/靜態(tài)控件的風(fēng)格類型 376
9.7.2 CEdit類 377
9.7.3 CStatic類 379
9.8 Rich Edit控件 381
9.8.1 Rich Edit控件基礎(chǔ) 381
9.8.2 CRichEditCtrl類 381
9.8.3 Rich Edit控件實(shí)例 384
9.9 列表框/進(jìn)度條控件 388
9.9.1 列表框/進(jìn)度條控件的風(fēng)格類型 389
9.9.2 CListBox類 390
9.9.3 CProgressCtrl類 392
9.9.4 編程實(shí)例 393
9.10 滑塊/調(diào)節(jié)鈕控件 394
9.10.1 滑塊/調(diào)節(jié)鈕控件的風(fēng)格類型 394
9.10.2 CSliderCtrl類 395
9.10.3 CSpinButtonCtrl類 397
9.11 滾動條控件 399
9.11.1 滾動條控件的風(fēng)格類型 399
9.11.2 CScrollBar類 400
9.12 列表/表頭控件 401
9.12.1 列表/表頭控件的風(fēng)格類型 402
9.12.2 CListCtrl類 404
9.12.3 CHeaderCtrl類 412
9.13 樹形控件 416
9.13.1 樹形控件的風(fēng)格類型 416
9.13.2 CTreeCtrl類 416
9.14 標(biāo)簽/IP控件 423
9.14.1 標(biāo)簽控件的風(fēng)格類型 423
9.14.2 CTabCtrl類 424
9.14.3 CIPAddressCtrl類 428
9.15 小結(jié) 429
第10章 程序調(diào)試 430
10.1 基礎(chǔ)知識 430
10.1.1 基本概念 432
10.1.2 Debug版本調(diào)試環(huán)境配置 432
10.1.3 Release版本調(diào)試環(huán)境配置 433
10.2 設(shè)置/取消斷點(diǎn) 433
10.2.1 位置斷點(diǎn)的設(shè)置 434
10.2.2 數(shù)據(jù)斷點(diǎn)的設(shè)置 436
10.2.3 消息斷點(diǎn)的設(shè)置 439
10.2.4 斷點(diǎn)的取消 439
10.3 跟蹤程序執(zhí)行 440
10.4 狀態(tài)查看工具 440
10.4.1 變量窗口 441
10.4.2 查看窗口 441
10.4.3 寄存器窗口 442
10.4.4 內(nèi)存窗口 442
10.4.5 調(diào)用堆棧 442
10.4.6 反匯編窗口 443
10.4.7 調(diào)試信息泡泡窗口 444
10.4.8 快速查看變量窗口 444
10.5 調(diào)試宏與函數(shù) 445
10.5.1 斷言宏 445
10.5.2 跟蹤宏 446
10.5.3 打印對象 447
10.6 小結(jié) 448
附錄 SDI應(yīng)用的消息循環(huán) 449
A.1 主循環(huán)過程 449
A.2 空閑處理 451
A.3 消息的處理 453
A.3.1 消息的獲取與分發(fā) 453
A.3.2 消息的預(yù)處理 454
A.3.3 空閑處理狀態(tài)的維護(hù) 455
A.4 結(jié)束主循環(huán) 456
參考文獻(xiàn) 458窗口是Windows GUI程序的基礎(chǔ),在Windows程序設(shè)計(jì)中,窗口編程具有舉足輕重的地位。本書深入淺出,全面地介紹了MFC中窗口程序的設(shè)計(jì)方法。內(nèi)容主要包括MFC窗口基類CWnd、框架窗口、文檔-視圖窗口、分割窗口、控制欄窗口、對話框、屬性表窗口以及控件窗口等,最后還對程序設(shè)計(jì)中的調(diào)試技術(shù)進(jìn)行了簡要介紹,以幫助讀者對程序進(jìn)行調(diào)試。
本書內(nèi)容豐富翔實(shí)、講解細(xì)致,對涉及MFC實(shí)現(xiàn)理論的部分均進(jìn)行了較為深入的剖析,并且結(jié)合工程實(shí)踐給出了相應(yīng)的實(shí)現(xiàn)代碼,具有較強(qiáng)的針對性,力求讓讀者通過親自動手做而掌握使用MFC進(jìn)行窗口程序設(shè)計(jì)的方法,學(xué)習(xí)盡可能多的知識。
本書主要定位于初、中級讀者,同時也可用作培訓(xùn)班以及高校師生的參考教材。
本書附帶的程序源代碼可從中國水利水電出版社網(wǎng)站免費(fèi)下載,網(wǎng)址為:http://www.waterpub.com.cn/softdown/。
第1章 Windows窗口與CWnd對象 1
1.1 窗口和CWnd對象 1
1.2 窗口與CWnd對象的映射關(guān)系 1
1.2.1 句柄的概念 1
1.2.2 句柄映射機(jī)制 2
1.2.3 關(guān)聯(lián)窗口對象與CWnd類對象 6
1.2.4 從窗口對象獲取CWnd類對象 9
1.2.5 解除窗口對象與CWnd類對象的關(guān)聯(lián) 11
1.2.6 臨時映射對象的清除 13
1.3 窗口的創(chuàng)建 15
1.3.1 傳統(tǒng)的Windows程序設(shè)計(jì)中的窗口類注冊 15
1.3.2 MFC應(yīng)用的窗口類注冊 16
1.3.3 SDI中的窗口創(chuàng)建順序 21
1.4 窗口的銷毀 22
1.4.1 Windows和應(yīng)用的交互 22
1.4.2 使用CWnd::PostNcDestroy自動銷毀 22
1.4.3 銷毀窗口對象總結(jié) 23
1.5 窗口的編程內(nèi)容 24
1.5.1 窗口消息傳遞過程 24
1.5.2 消息映射 26
1.5.3 繪制窗口 26
1.5.4 窗口的設(shè)備環(huán)境 27
1.6 繪制窗口類CDrawManager 29
1.6.1 CDrawManager成員簡介 29
1.6.2 繪制原理 30
1.7 小結(jié) 34
第2章 CWnd類綜述 35
2.1 CWnd類基礎(chǔ) 35
2.2 CWnd類成員函數(shù)簡介 35
2.2.1 CWnd類成員函數(shù)分類 35
2.2.2 構(gòu)造析構(gòu)成員函數(shù) 36
2.2.3 初始化成員函數(shù) 37
2.2.4 對話框項(xiàng)成員函數(shù) 39
2.2.5 處理初始化消息的成員函數(shù) 41
2.2.6 窗口狀態(tài)成員函數(shù) 42
2.2.7 處理系統(tǒng)消息的成員函數(shù) 43
2.2.8 窗口大小和位置有關(guān)的成員函數(shù) 45
2.2.9 菜單成員函數(shù) 48
2.2.10 處理一般消息的成員函數(shù) 48
2.2.11 訪問窗口的成員函數(shù) 55
2.2.12 工具提示成員函數(shù) 59
2.2.13 處理控件消息的成員函數(shù) 60
2.2.14 處理更新/繪制的成員函數(shù) 62
2.2.15 處理輸入消息的成員函數(shù) 66
2.2.16 處理坐標(biāo)映射的成員函數(shù) 67
2.2.17 處理非客戶區(qū)消息的成員函數(shù) 68
2.2.18 處理窗口文本的成員函數(shù) 70
2.2.19 處理窗口消息的成員函數(shù) 71
2.2.20 處理滾動的成員函數(shù) 72
2.2.21 剪貼板成員函數(shù) 73
2.2.22 剪貼板消息處理函數(shù) 74
2.2.23 可重載的成員函數(shù) 75
2.2.24 脫字符成員函數(shù) 77
2.2.25 其他 78
2.3 CWnd派生類 80
2.3.1 框架窗口類 80
2.3.2 視圖類 81
2.3.3 對話框類 82
2.3.4 控件類 83
2.3.5 控制條類 85
2.3.6 屬性表類 85
2.4 編程實(shí)例 85
2.4.1 創(chuàng)建工程 85
2.4.2 添加代碼 86
2.5 小結(jié) 88
第3章 框架窗口 89
3.1 CFrameWnd成員一覽 89
3.1.1 CFrameWnd類數(shù)據(jù)成員 89
3.1.2 CFrameWnd類構(gòu)造函數(shù) 89
3.1.3 CFrameWnd類初始化函數(shù) 90
3.1.4 CFrameWnd類操作函數(shù) 91
3.1.5 CFrameWnd類可重載函數(shù) 93
3.1.6 CFrameWnd類命令處理函數(shù) 94
3.2 SDI框架窗口的創(chuàng)建過程 94
3.2.1 框架窗口的創(chuàng)建 94
3.2.2 使用LoadFrame創(chuàng)建框架窗口 95
3.2.3 使用AfxEndDeferRegisterClass注冊窗口類 96
3.2.4 使用GetIconWndClass獲取窗口類 97
3.2.5 使用PreCreateWindow注冊窗口類 98
3.2.6 使用CFrameWnd::Create創(chuàng)建框架窗口 99
3.2.7 框架窗口子窗口的初始化 101
3.3 SDI框架窗口的銷毀 104
3.3.1 響應(yīng)WM_CLOSE消息 104
3.3.2 銷毀Windows窗口對象 106
3.3.3 銷毀C++對象 107
3.4 SDI框架窗口對命令消息及控件通知的處理 108
3.4.1 命令消息 108
3.4.2 控件通知 108
3.4.3 框架對WM_COMMAND的處理 109
3.4.4 框架對WM_NOTIFY的處理 114
3.5 MDI框架窗口的創(chuàng)建及銷毀 114
3.5.1 SDI與MDI的主要區(qū)別 115
3.5.2 主MDI框架窗口的創(chuàng)建 115
3.5.3 MDI客戶窗口及其創(chuàng)建 116
3.5.4 MDI子框架窗口的創(chuàng)建 118
3.5.5 框架窗口與MDI客戶窗口之間的關(guān)系 120
3.5.6 MDI框架窗口的銷毀 121
3.6 MDI框架窗口對命令消息的處理 121
3.6.1 主MDI框架窗口的命令處理 121
3.6.2 主MDI框架窗口的命令分發(fā) 122
3.6.3 MDI框架窗口的窗口過程 123
3.7 框架窗口的更新機(jī)制 124
3.7.1 命令UI類 124
3.7.2 用于更新操作的成員CCmdUI::DoUpdate 125
3.8 框架窗口的客戶區(qū)管理機(jī)制 126
3.9 小結(jié) 127
第4章 文檔—視圖窗口 129
4.1 文檔-視圖模型 129
4.1.1 文檔-視圖模型簡介 129
4.1.2 文檔-視圖類 130
4.1.3 CView的派生類 130
4.1.4 創(chuàng)建工程 131
4.2 文檔-視圖重要成員 131
4.2.1 文檔成員 131
4.2.2 視圖成員 133
4.3 對象的創(chuàng)建 135
4.3.1 創(chuàng)建模板對象 135
4.3.2 創(chuàng)建文檔對象 136
4.3.3 創(chuàng)建框架對象 139
4.3.4 創(chuàng)建視圖對象 140
4.3.5 各對象間的關(guān)系 143
4.4 文檔-視圖的初始化和清除 145
4.4.1 初始化和清除的時機(jī) 145
4.4.2 初始化和清除的過程 146
4.5 命令消息在視圖窗口中的分發(fā)過程 146
4.5.1 視圖窗口對命令消息的處理 146
4.5.2 文檔類對命令消息的處理 147
4.5.3 命令消息的處理函數(shù)的調(diào)用過程 148
4.6 視圖窗口的使用 150
4.6.1 在視圖中繪制 150
4.6.2 通過視圖解釋用戶輸入 151
4.6.3 多視圖窗口 151
4.7 定制控件視圖 152
4.7.1 指導(dǎo)思想 152
4.7.2 具體實(shí)現(xiàn) 152
4.8 編程實(shí)例 153
4.8.1 資源編輯 154
4.8.2 為工程添加新類 154
4.8.3 主框架實(shí)現(xiàn) 155
4.8.4 列表視圖實(shí)現(xiàn) 158
4.8.5 表單視圖實(shí)現(xiàn) 159
4.8.6 地址欄實(shí)現(xiàn) 161
4.9 小結(jié) 163
第5章 分割窗口 164
5.1 窗口分割 164
5.2 CSplitterWnd類 165
5.2.1 CSplitterWnd類成員一覽 165
5.2.2 創(chuàng)建動態(tài)分割窗口 167
5.2.3 創(chuàng)建靜態(tài)分割窗口 170
5.2.4 創(chuàng)建分割窗口的窗格 171
5.2.5 設(shè)置窗格信息 173
5.2.6 繪制分割窗口的組件 174
5.2.7 繪制拖動分割條 176
5.3 分割窗口中的通信機(jī)制 177
5.3.1 有文檔相連的視圖之間的通信 178
5.3.2 無文檔視圖與文檔關(guān)聯(lián)視圖之間的通信 178
5.3.3 無文檔關(guān)聯(lián)視圖之間的通信 178
5.3.4 任意視圖之間的通信 179
5.4 分割窗口中的命令路由 179
5.4.1 通過文檔對象路由視圖窗口 179
5.4.2 通過分割窗口路由視圖窗口 180
5.4.3 通用路由方法 181
5.5 編程實(shí)例 181
5.5.1 工程的創(chuàng)建 181
5.5.2 分割窗口的創(chuàng)建 182
5.5.3 自定義分割窗口類CSplitterWndEx 184
5.5.4 位圖信息窗格 189
5.5.5 原始位圖窗格 196
5.5.6 處理后位圖窗格 197
5.6 位圖類 199
5.6.1 位圖 199
5.6.2 位圖類 199
5.7 小結(jié) 202
第6章 控制欄窗口 203
6.1 控制欄綜述 203
6.1.1 控制欄簡介 203
6.1.2 CControlBar類成員 203
6.1.3 控制欄布局算法 206
6.1.4 控制欄對消息的處理 209
6.1.5 布局算法應(yīng)用實(shí)例 214
6.2 對話條窗口 215
6.2.1 工程的創(chuàng)建 215
6.2.2 對話條窗口的創(chuàng)建 216
6.2.3 對話條窗口的UI對象更新 219
6.2.4 接收來自主菜單或工具欄的命令消息 219
6.2.5 對話條實(shí)例分析 220
6.3 伸縮欄窗口 222
6.3.1 類CReBar和CReBarCtrl 223
6.3.2 CReBar成員介紹 223
6.3.3 在Rebar控件中使用對話條 224
6.3.4 伸縮欄的UI對象更新 225
6.3.5 伸縮欄實(shí)例分析 225
6.4 工具欄窗口 226
6.4.1 工具欄窗口簡介 226
6.4.2 工具欄成員一覽 227
6.4.3 工具欄窗口的創(chuàng)建 227
6.4.4 在工具欄中使用圖像列表 230
6.4.5 在工具欄中使用下拉按鈕 230
6.4.6 工具欄窗口的UI對象更新 232
6.4.7 在工具欄上顯示文本 233
6.4.8 在工具欄上創(chuàng)建控件 235
6.4.9 工具欄熱點(diǎn)按鈕的切換 239
6.5 狀態(tài)欄窗口 239
6.5.1 狀態(tài)欄窗口簡介 240
6.5.2 狀態(tài)欄成員一覽 240
6.5.3 狀態(tài)欄窗口的創(chuàng)建 241
6.5.4 為狀態(tài)欄添加窗格 242
6.5.5 狀態(tài)欄窗口的UI對象更新 243
6.5.6 在狀態(tài)欄上創(chuàng)建控件 244
6.5.7 狀態(tài)欄中的消息響應(yīng) 246
6.5.8 改變狀態(tài)欄的大小 247
6.6 主框架對控制欄的控制 248
6.6.1 工具箱的顯隱 248
6.6.2 工具箱的布局 248
6.6.3 工具箱和對話條的通信 249
6.7 小結(jié) 250
第7章 對話框 251
7.1 對話框及MFC相關(guān)類 251
7.1.1 對話框與CDialog類 251
7.1.2 工程的創(chuàng)建 252
7.2 模態(tài)對話框 254
7.2.1 添加對話框及其類 254
7.2.2 創(chuàng)建模態(tài)對話框 256
7.2.3 模態(tài)對話框消息循環(huán) 264
7.2.4 模態(tài)的終結(jié) 268
7.3 非模態(tài)對話框 270
7.3.1 添加對話框及其類 270
7.3.2 創(chuàng)建非模態(tài)對話框 271
7.3.3 模態(tài)對話框與非模態(tài)對話框的區(qū)別 273
7.4 對話框數(shù)據(jù)交換和驗(yàn)證 273
7.4.1 CDataExchange類簡介 273
7.4.2 數(shù)據(jù)交換和驗(yàn)證 274
7.5 對話框中更新機(jī)制的實(shí)現(xiàn) 277
7.5.1 CWnd::UpdateDialogControls成員 278
7.5.2 使用WM_KICKIDLE鉤子實(shí)現(xiàn)UI更新 280
7.5.3 在模態(tài)檢測ContinueModal中實(shí)現(xiàn)UI更新 281
7.5.4 按鈕和編輯控件更新的實(shí)現(xiàn) 281
7.6 對話框背景及背景透明的控件 282
7.6.1 設(shè)置對話框的背景顏色 283
7.6.2 設(shè)置對話框背景位圖 283
7.6.3 繪制對話框背景 285
7.6.4 對話框控件透明背景的實(shí)現(xiàn) 287
7.6.5 MFC處理對話框及其控件顏色和背景的實(shí)現(xiàn) 288
7.7 為對話框添加工具欄 289
7.7.1 創(chuàng)建工具欄 290
7.7.2 為工具欄添加提示信息 290
7.7.3 控制工具欄的顯隱狀態(tài) 292
7.8 為對話框添加狀態(tài)欄 292
7.8.1 創(chuàng)建狀態(tài)欄 293
7.8.2 設(shè)置狀態(tài)欄窗格信息 293
7.8.3 控制狀態(tài)欄的顯隱狀態(tài) 296
7.8.4 狀態(tài)欄中系統(tǒng)時間的更新方法 296
7.9 為對話框添加菜單 297
7.10 對話框中特定鍵的處理 298
7.11 對話框擴(kuò)展與收縮 300
7.12 控件在對話框中的應(yīng)用 302
7.12.1 “關(guān)于”對話框的滾動字幕控件 302
7.12.2 顯示Gif圖片的控件 302
7.13 其他實(shí)現(xiàn) 303
7.14 小結(jié) 303
第8章 屬性表窗口 304
8.1 屬性表相關(guān)類 304
8.2 屬性表類 304
8.2.1 屬性表類簡介 304
8.2.2 屬性表類成員 305
8.3 屬性頁類 309
8.3.1 屬性頁類簡介 309
8.3.2 重要成員函數(shù)介紹 310
8.4 創(chuàng)建屬性表 312
8.4.1 創(chuàng)建模態(tài)屬性表 313
8.4.2 創(chuàng)建非模態(tài)屬性表 313
8.5 處理“應(yīng)用”按鈕 314
8.5.1 屬性表處理 314
8.5.2 屬性頁處理 315
8.6 在對話框中使用屬性表 316
8.6.1 工程的創(chuàng)建 316
8.6.2 工程資源的添加 318
8.6.3 屬性表類實(shí)現(xiàn) 319
8.6.4 “一般信息”頁編程 319
8.6.5 “類信息”頁編程 325
8.6.6 主對話框窗口編程 326
8.7 樹形屬性表的實(shí)現(xiàn) 332
8.7.1 工程的創(chuàng)建 333
8.7.2 CPropPageFrame類 334
8.7.3 CTreePropSheet類 334
8.7.4 屬性表“應(yīng)用”按鈕的編程 335
8.7.5 屬性頁編程 336
8.7.6 屬性表接口編程 336
8.8 擴(kuò)展屬性表類——CTreePropSheet 338
8.8.1 屬性表的初始化 338
8.8.2 樹形控件中屬性頁項(xiàng)的創(chuàng)建和填充 342
8.8.3 結(jié)束當(dāng)前屬性頁 345
8.8.4 響應(yīng)樹形控件中屬性頁項(xiàng)的變化 346
8.8.5 更新屬性頁的標(biāo)題 347
8.9 小結(jié) 349
第9章 控件窗口 350
9.1 控件窗口 350
9.1.1 控件窗口的創(chuàng)建 352
9.1.2 派生公共控件窗口 353
9.2 動畫控件 354
9.2.1 CAnimateCtrl類 354
9.2.2 動畫控件的使用 355
9.2.3 動畫控件的局限 357
9.3 按鈕控件 358
9.3.1 按鈕控件的風(fēng)格類型 358
9.3.2 CButton類 358
9.3.3 CBitmapButton類 360
9.3.4 按鈕控件的通知消息 360
9.4 組合框/擴(kuò)展組合框控件 361
9.4.1 組合框/擴(kuò)展組合框的風(fēng)格類型 361
9.4.2 CcomboBox類 362
9.4.3 CComboBoxEx類 366
9.4.4 擴(kuò)展組合框與圖像列表 367
9.5 時間提取器/月歷控件 368
9.5.1 時間提取器/月歷控件的風(fēng)格類型 368
9.5.2 CDateTimeCtrl類 369
9.5.3 CMonthCalCtrl類 371
9.6 圖像列表控件 373
9.6.1 CImageList類 373
9.6.2 圖像列表的類型 374
9.6.3 圖像列表的編程 374
9.7 編輯控件/靜態(tài)控件 375
9.7.1 編輯控件/靜態(tài)控件的風(fēng)格類型 376
9.7.2 CEdit類 377
9.7.3 CStatic類 379
9.8 Rich Edit控件 381
9.8.1 Rich Edit控件基礎(chǔ) 381
9.8.2 CRichEditCtrl類 381
9.8.3 Rich Edit控件實(shí)例 384
9.9 列表框/進(jìn)度條控件 388
9.9.1 列表框/進(jìn)度條控件的風(fēng)格類型 389
9.9.2 CListBox類 390
9.9.3 CProgressCtrl類 392
9.9.4 編程實(shí)例 393
9.10 滑塊/調(diào)節(jié)鈕控件 394
9.10.1 滑塊/調(diào)節(jié)鈕控件的風(fēng)格類型 394
9.10.2 CSliderCtrl類 395
9.10.3 CSpinButtonCtrl類 397
9.11 滾動條控件 399
9.11.1 滾動條控件的風(fēng)格類型 399
9.11.2 CScrollBar類 400
9.12 列表/表頭控件 401
9.12.1 列表/表頭控件的風(fēng)格類型 402
9.12.2 CListCtrl類 404
9.12.3 CHeaderCtrl類 412
9.13 樹形控件 416
9.13.1 樹形控件的風(fēng)格類型 416
9.13.2 CTreeCtrl類 416
9.14 標(biāo)簽/IP控件 423
9.14.1 標(biāo)簽控件的風(fēng)格類型 423
9.14.2 CTabCtrl類 424
9.14.3 CIPAddressCtrl類 428
9.15 小結(jié) 429
第10章 程序調(diào)試 430
10.1 基礎(chǔ)知識 430
10.1.1 基本概念 432
10.1.2 Debug版本調(diào)試環(huán)境配置 432
10.1.3 Release版本調(diào)試環(huán)境配置 433
10.2 設(shè)置/取消斷點(diǎn) 433
10.2.1 位置斷點(diǎn)的設(shè)置 434
10.2.2 數(shù)據(jù)斷點(diǎn)的設(shè)置 436
10.2.3 消息斷點(diǎn)的設(shè)置 439
10.2.4 斷點(diǎn)的取消 439
10.3 跟蹤程序執(zhí)行 440
10.4 狀態(tài)查看工具 440
10.4.1 變量窗口 441
10.4.2 查看窗口 441
10.4.3 寄存器窗口 442
10.4.4 內(nèi)存窗口 442
10.4.5 調(diào)用堆棧 442
10.4.6 反匯編窗口 443
10.4.7 調(diào)試信息泡泡窗口 444
10.4.8 快速查看變量窗口 444
10.5 調(diào)試宏與函數(shù) 445
10.5.1 斷言宏 445
10.5.2 跟蹤宏 446
10.5.3 打印對象 447
10.6 小結(jié) 448
附錄 SDI應(yīng)用的消息循環(huán) 449
A.1 主循環(huán)過程 449
A.2 空閑處理 451
A.3 消息的處理 453
A.3.1 消息的獲取與分發(fā) 453
A.3.2 消息的預(yù)處理 454
A.3.3 空閑處理狀態(tài)的維護(hù) 455
A.4 結(jié)束主循環(huán) 456
參考文獻(xiàn) 458窗口是Windows GUI程序的基礎(chǔ),在Windows程序設(shè)計(jì)中,窗口編程具有舉足輕重的地位。本書深入淺出,全面地介紹了MFC中窗口程序的設(shè)計(jì)方法。內(nèi)容主要包括MFC窗口基類CWnd、框架窗口、文檔-視圖窗口、分割窗口、控制欄窗口、對話框、屬性表窗口以及控件窗口等,最后還對程序設(shè)計(jì)中的調(diào)試技術(shù)進(jìn)行了簡要介紹,以幫助讀者對程序進(jìn)行調(diào)試。
本書內(nèi)容豐富翔實(shí)、講解細(xì)致,對涉及MFC實(shí)現(xiàn)理論的部分均進(jìn)行了較為深入的剖析,并且結(jié)合工程實(shí)踐給出了相應(yīng)的實(shí)現(xiàn)代碼,具有較強(qiáng)的針對性,力求讓讀者通過親自動手做而掌握使用MFC進(jìn)行窗口程序設(shè)計(jì)的方法,學(xué)習(xí)盡可能多的知識。
本書主要定位于初、中級讀者,同時也可用作培訓(xùn)班以及高校師生的參考教材。
本書附帶的程序源代碼可從中國水利水電出版社網(wǎng)站免費(fèi)下載,網(wǎng)址為:http://www.waterpub.com.cn/softdown/。
- 零基礎(chǔ)玩轉(zhuǎn)國產(chǎn)大模型DeepSeek [徐永冰 張帥 編著]
- 網(wǎng)絡(luò)工程師5天修煉(適配第6版考綱) [主編 朱小平 施游]
- 信息系統(tǒng)項(xiàng)目管理師考試32小時通關(guān)(適用第4版考綱) [薛大龍]
- 信息系統(tǒng)管理工程師考試32小時通關(guān)(適配第2版考綱) [薛大龍 劉偉]
- 土木工程材料檢測實(shí)訓(xùn) [洪曉江 達(dá)則曉麗 錢波]
- 科技信息檢索與論文寫作實(shí)用教程 [李振華]
- 傳統(tǒng)山水畫論解讀與實(shí)踐 [陳鈉 著]
- Python數(shù)據(jù)庫編程 [主編 殷樹友 邢 翀]
- 計(jì)算機(jī)基礎(chǔ)實(shí)訓(xùn)指導(dǎo) [主編 袁春萍 朱妮]
- 嵌入式人工智能技術(shù)應(yīng)用(數(shù)字教材) [主編 胡娜 楊國勇 晏廷榮]
- Vienna整流器技術(shù) [桂存兵 著]
- 變頻器與伺服應(yīng)用 [陳剛 葉云飛]
- 物聯(lián)網(wǎng)工程設(shè)計(jì)與實(shí)踐 [湯琳 李敏]
- 爐邊夜話——深入淺出話AI [汪建 著]
- 電商運(yùn)營與管理 [鐘肖英 陳瀟]
- Java面向?qū)ο蟪绦蛟O(shè)計(jì) [主編 姜春磊 陳虹潔]
- 信息技術(shù)基礎(chǔ)(Windows 10+WPS Office)(微課版) [主編 石利平 田輝平 謝盛嘉]
- 人工智能應(yīng)用 [主編 陳 萍 劉培培 陳孟軍]
- 大學(xué)生職業(yè)發(fā)展與就業(yè)指導(dǎo) [主編 劉志堅(jiān)]
- 高級辦公應(yīng)用項(xiàng)目教程 [主編 屈晶 趙成麗]
- 微信小程序開發(fā)項(xiàng)目實(shí)戰(zhàn)(微課版) [主編 黃龍泉 郭峰 朱倩]
- 企業(yè)檔案工作實(shí)戰(zhàn)寶典百問百答 [華俊 盧秀英 邵甜甜 著]
- 計(jì)算機(jī)網(wǎng)絡(luò)原理及應(yīng)用 [主編 唐繼勇 葉坤 孫夢娜]
- 大學(xué)生創(chuàng)業(yè)基礎(chǔ) [主編 王麗莉 王 楊]
- 船舶輔機(jī) [主編 王連海 于洋 姜淑翠]
- 大學(xué)生就業(yè)指導(dǎo) [主編 王麗莉 董宴廷]
- 系統(tǒng)架構(gòu)設(shè)計(jì)師章節(jié)習(xí)題與考點(diǎn)特訓(xùn) [主編 薛大龍 鄒月平]
- 高校學(xué)生工作探索與實(shí)踐 [郭亮 著]
- 大學(xué)生情商管理 [方雄 著]
- 2023年長沙市會展業(yè)發(fā)展報告 [主編 周棟良]
關(guān)閉
打印
推薦
收藏
評論
相關(guān)分類
- 生活經(jīng)管more>>
叢書系列
- Delphi 2005課程設(shè)計(jì)案例精編
- MFC窗口程序設(shè)計(jì)
- Visual Basic 2005編程技巧大全
- Visual C# 2005管理系統(tǒng)開發(fā)經(jīng)典案例
- Visual C++ 2005管理系統(tǒng)開發(fā)經(jīng)典案例
- Visual Basic 2005管理系統(tǒng)開發(fā)經(jīng)典案
- 3DS MAX家裝設(shè)計(jì)方案真實(shí)再現(xiàn)
- 室內(nèi)制作
- ASP.NET 2.0數(shù)據(jù)庫開發(fā)經(jīng)典案例
- Visual C++ 2005編程技巧大全
- Visual C# 2005數(shù)據(jù)庫開發(fā)經(jīng)典案例
- Visual C# 2005+Access數(shù)據(jù)庫開發(fā)經(jīng)典
- Visual C++ 2005數(shù)據(jù)庫開發(fā)經(jīng)典案例