当前位置:首页 > 工业技术
MFC经典问答
MFC经典问答

MFC经典问答PDF电子书下载

工业技术

  • 电子书积分:16 积分如何计算积分?
  • 作 者:(美)Eugene Kain著;健莲科技译
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2001
  • ISBN:7508306066
  • 页数:518 页
图书介绍:
《MFC经典问答》目录

第0章 术语和约定说明 1

第1节 本书中使用的术语 1

第2节 本书实例代码中的约定说明 2

第1章 文档/视图结构的背景 3

FAQ 1.1 什么是文档/视图结构? 3

FAQ 1.2 使用文档/视图结构的好处是什么? 3

FAQ 1.3 文档/视图结构的组件有哪些?它们彼此间如何联系? 4

FAQ 1.4 文档的作用是什么? 7

FAQ 1.5 视图的作用是什么? 8

FAQ 1.6 视图框架窗口的作用是什么? 9

FAQ 1.7 文档模板的作用是什么? 9

FAQ 1.8 文档模板资源ID的作用是什么? 10

FAQ 1.9 如何创建文档/视图结构的组件对象? 12

FAQ 1.10 MFC如何发送命令消息? 13

FAQ 1.11 MFC如何执行标准的菜单命令? 16

第2章 文档和文档模板 20

第1节 管理文档模板 20

FAQ 2.1 在应用程序中如何创建并引用多文档模板? 20

FAQ 2.2 当用户每次创建一个新文档时,如何管理多文档模板而不用弹出对话框? 23

FAQ 2.3 如何创建具有一个新的文档模板资源ID的资源? 28

FAQ 2.4 当打开一个文档时,MFC如何选择所使用的文档模板对象? 30

FAQ 2.5 如何把多个文档扩展名与同一个文档或视图类关联? 34

第2节 管理文件 38

FAQ 2.6 如何防止一个MDI应用程序在启动时打开一个新(空)文档? 38

FAQ 2.7 如何编程来创建一个新(空)文档? 43

FAQ 2.8 如何编程来打开一个已存在的文档文件? 47

FAQ 2.9 如何使应用程序保存上一次的活动文档,并自动地再次打开它? 48

FAQ 2.10 如何使文档自动地保存而不用提示用户? 53

FAQ 2.11 如何实现“Save all doucuments”菜单命令,该命令在保存每个修改过的文档时不用提示用户? 54

FAQ 2.12 如何编程来关闭一个文档? 59

FAQ 2.13 如何实现“Close all documents”菜单命令? 61

第3节 管理当前文档列表(Recent Files List,MRU) 66

FAQ 2.14 如何定制在“File ’菜单内显示的当前文档数? 66

FAQ 2.15 如何编程在Recent Files表中增加一个特殊的字符串? 70

FAQ 2.16 如何截取用户选择的Recent Files项? 73

FAQ 2.17 如何使应用程序自动地打开在Recent File表顶部列出的文档? 76

第4节 其他条目 77

FAQ 2.18 如何得到指向当前活动文档的指针? 77

FAQ 2.19 如何遍历当前打开的所有文档列表? 81

FAQ 2.20 为什么我的应用程序没有在Windows Explorer中注册它的文档文件,如何解决这一问题? 87

第3章 视图和框架窗口 90

第1节 综合主题 90

FAQ 3.1 如何在我的应用程序中增加一个新类型的视图或框架窗口? 90

FAQ 3.2 如何选择是在视图类还是在视图的框架窗口类内实现某种特殊行为? 95

第2节 打开和关闭视图以及框架窗口 96

FAQ 3.3 如何编程打开一个基于特殊文档模板的视图? 96

FAQ 3.4 如何在每次创建新文档时打开两个(或多个)特定视图? 99

FAQ 3.5 如何编程来关闭一个视图? 104

FAQ 3.6 如何编程来关闭一个打开文档的所有视图? 104

FAQ 3.7 如何防止用户关闭一个视图? 105

第3节 管理位置和大小 110

FAQ 3.8 如何编程来改变视图的大小和位置? 110

FAQ 3.9 如何设置一个视图的初始位置和大小? 112

FAQ 3.10 如何使主应用程序窗口居中? 115

FAQ 3.11 如何使视图居中? 118

FAQ 3.12 如何使框架窗口的大小不可改变? 120

FAQ 3.13 如何限制视图的最大或最小尺寸? 121

FAQ 3.14 如何限制视图的重新定位? 124

FAQ 3.15 如何使视图初始显示的规模为最小或最大? 128

FAQ 3.16 如何使应用程序以最大化或者最小化状态启动? 131

FAQ 3.17 如何使主应用程序窗口总是位于其他窗口的上面? 135

FAQ 3.18 如何使某个视图总位于其他视图的上面? 136

FAQ 3.19 如何实现一个像Visual C++和Word那样的全屏视图模式? 140

第4节 管理标题、图标、光标和背景 146

FAQ 3.20 如何定制视图的标题? 146

FAQ 3.21 如何在视图的标题中显示一个“修改过”的指示符,与某个“修改过的”文档关联? 151

FAQ 3.22 在应用程序中如何修改与各个类型的窗口相关联的图标? 154

FAQ 3.23 如何动态地改变主应用程序窗口的图标? 155

FAQ 3.24 如何动态地改变某个视图的光标? 158

FAQ 3.25 如何在某个漫长的操作中显示一个沙漏光标? 161

FAQ 3.26 如何改变一个视图的背景颜色? 163

FAQ 3.27 如何在主应用程序窗口的背景上画图? 165

第5节 程序清单视图 172

FAQ 3.28 如何使我的程序清单视图与其他的视图同步? 172

FAQ 3.29 如何使一个程序清单视图初始显示时的尺寸恰好为所关联的对话资源的大小? 175

FAQ 3.30 如何在程序清单视图内使用UPDATE_COMMAND_UI机制? 176

FAQ 3.31 如何改变程序清单视图的背景颜色? 180

FAQ 3.32 如何在程序清单视图的控件上增加工具提示(ToolTip)? 183

第6节 分割窗口 186

FAQ 3.33 如何编写一个具有水平和垂直静态分割器面板(三线分割)的窗口? 186

FAQ 3.34 如何锁定一个分割器(Splitter)窗口,从而使用户不能移动分割线? 190

FAQ 3.35 如何编程改变某个分割器窗口内面板的大小? 192

FAQ 3.36 如何向用户可见地显示包括活动视图的分割器面板? 195

第7节 切换视图 199

FAQ 3.37 如何动态地切换在MDI子窗口或者在SDI主应用程序窗口显示的视图? 199

FAQ 3.38 如何动态地切换在分割器窗口内显示的视图? 203

第8节 其他条目 208

FAQ 3.39 如何得到活动视图的指针? 208

FAQ 3.40 如何得到活动框架窗口的指针? 210

FAQ 3.41 如何遍历与某个文档关联的所有视图程序清单? 211

第4章 对话框 213

第1节 综合主题 213

FAQ 4.1 如何设置一个对话框的起始位置? 213

FAQ 4.2 如何使对话框在另一个窗口里居中? 217

FAQ 4.3 对话框如何访问活动文档(或视图)对象? 220

FAQ 4.4 如何控制对话框的背景颜色? 223

FAQ 4.5 如何给一个对话框加入预览区域(在对话框内绘制)? 226

FAQ 4.6 如何为对话框增加一个图标? 229

FAQ 4.7 如何实现一个展开的对话框? 230

FAQ 4.8 如何为对话框增加一个工具栏? 237

第2节 处理对话框内的控件 248

FAQ 4.9 当显示一个对话框时,如何选择最初拥有焦点的控件? 248

FAQ 4.10 如何在对话框中定制确认规则? 248

FAQ 4.11 如何改变对话框内的控件的字体和颜色? 251

FAQ 4.12 如何在对话框中使用UPDATE_COMMAND_UI机制? 254

FAQ 4.13 如何在对话框中增加工具提示以支持控件? 259

第5章 属性单 262

第1节 综合主题 262

FAQ 5.1 如何建立和使用一个属性单? 262

FAQ 5.2 如何设置属性单的Apply按钮? 267

FAQ 5.3 如何通过编程改变属性单内的活动页? 272

FAQ 5.4 如何定制标准的属性单按钮? 274

FAQ 5.5 如何控制属性单窗口的尺寸? 279

第2节 管理标签(Tab) 283

FAQ 5.6 是选择标签的层叠行方式还是选择标签的带有滚动条单一行的方式? 283

FAQ 5.7 如何改变属性单标签的标题? 284

FAQ 5.8 如何为属性页的标签(Tab)加入图标? 287

第3节 嵌入属性单 288

FAQ 5.9 如何在对话框里嵌入属性单? 288

FAQ 5.10 如何在表单视图里嵌入属性单? 294

FAQ 5.11 如何在分割器窗口里嵌入属性单? 297

FAQ 5.12 如何在小框架窗口里嵌入属性单? 299

第6章 工具栏和状态栏 302

第1节 工具栏 302

FAQ 6.1 如何在主框架窗口或视图的框架窗口加入一个或多个工具栏? 302

FAQ 6.2 用于控制工具栏位置、方位以及一般行为的各种操作是什么? 308

FAQ 6.3 如何通过编程来实现将一个工具栏紧随另一个工具栏停靠? 313

FAQ 6.4 如何为工具栏添加一个组合框? 316

FAQ 6.5 如何为工具栏按钮添加文本标签? 324

FAQ 6.6 如何实现用户使用菜单选择所要的工具栏? 327

FAQ 6.7 如何通过选择右击停靠区而显示的弹出式菜单,允许用户选择所要的工具栏? 332

FAQ 6.8 如何动态地在不同的工具栏之间切换? 334

第2节 状态栏 342

FAQ 6.9 如何为视图的框架窗口添加一个定制的状态栏? 342

FAQ 6.10 如何更新状态栏格的文本? 344

FAQ 6.11 如何定制属性条的字体? 350

FAQ 6.12 如何在状态栏内绘画? 353

FAQ 6.13 如何在显示菜单提示时最大化消息格? 358

FAQ 6.14 如何在状态栏内显示一个进度指示器? 365

第3节 常见控制栏问题 370

FAQ 6.15 如何编程显示或隐藏控制栏? 370

FAQ 6.16 如何设置浮动控制栏的标题? 373

FAQ 6.17 如何保存和恢复控制栏的位置和状态? 375

FAQ 6.18 如何创建自定义控制栏? 378

第7章 菜单 398

FAQ 7.1 如何用一个单一函数处理几个不同的菜单命令? 398

FAQ 7.2 如何实现一个右键弹出式菜单(上下文菜单)? 403

FAQ 7.3 如何在当用户在一个工具栏上单击一个按钮时显示一个弹出式菜单? 406

FAQ 7.4 如何在当用户在一个对话框中单击鼠标右键时显示一个弹出式菜单? 409

FAQ 7.5 如何实现一个属主绘式菜单? 415

第8章 打印和打印预览 428

FAQ 8.1 MFC的打印体系结构是怎样的? 428

FAQ 8.2 如何在MFC应用程序中实现打印和打印预览? 434

FAQ 8.3 如何打印页数事先未知的文档(动态分页)? 442

FAQ 8.4 如何像Microsoft Word那样预测分页符? 447

FAQ 8.5 如何编程动态实现打印方向(横排或竖排)的改变? 449

FAQ 8.6 如何不向用户显示标准的打印对话框而直接打印? 451

FAQ 8.7 如何自定义标准的打印对话框并获取用户选项? 455

FAQ 8.8 如何自定义“打印...”对话框? 459

FAQ 8.9 如何停止或中断打印作业? 466

FAQ 8.10 如何为单色打印机实现灰度打印预览? 467

FAQ 8.11 如何在代码中区分画图、打印预览和实际打印? 469

附录A 公用函数和类 472

附录B 参考文献和其他资源 516

返回顶部