第一编 如何编写一个具有实用功能的字处理编辑软件 2
一、程序运行特征 2
二、程序创建过程 2
三、程序运行机制 7
1.EditSoft应用程序是怎样打开或新建一个文本文件的(文档/视图结构的应用程序是怎样运行的)? 7
2.在MFC编程中,为什么大多数应用程序采用文档/视图结构? 11
3.文档和视图是怎样联系起来的? 12
4.为什么在某些程序新创建的菜单中只输入了一个菜单ID标识就可以实现某一种功能,而没有加入任何代码? 13
5.为什么在应用程序的菜单(包括浮动菜单和弹出菜单)中有的菜单项是灰的? 14
6.为什么几乎所有的命令消息处理函数都必须有一个ID标识与之相关联? 15
7.如何为程序添加一个浮动菜单? 18
8.操作系统自带的记事本程序中的“帮助\关于记事本”对话框中的系统信息是如何增加上去的? 26
9.如何给应用程序做一个每日提示(在程序启动时显示)? 30
10.为什么在应用程序中直接加入每日提示(Tip of the day)部件后,屏幕上出现“提示文件”不存在的出错信息? 30
11.如何汉化每日提示界面的所有英文? 34
12.每日提示(Tip of the Day)控件是怎样在应用程序中加入自己的菜单的(如何动态修改菜单)? 36
13.怎样为应用程序(EditSoft)增加一个日历? 43
14.如何使EditSoft(单文档)应用程序成为多文档应用程序? 48
15.如何修改应用程序标题栏上的显示文字? 55
16.如何使应用程序以最大化窗口显示? 57
17.如何在应用程序的状态条上显示时间? 58
18.如何使应用程序窗口左上角标题栏上的应用程序图标动起来? 60
19.如何使应用程序支持拖放功能? 64
四、程序功能扩充 65
20.怎样建立一个文件打开、关闭对话框? 66
21.如何使用字体、颜色对话框? 70
22.如何处理文字输入? 82
23.如何在字处理编辑器中增加一个插入符? 83
24.如何使应用程序窗口滚动? 92
25.如何处理方向键、翻页键等虚键操作? 99
26.如何实现字符串的复制、粘贴? 103
27.如何为文档增加打印功能? 112
28.如何实现应用程序数据的读出和写入? 122
一、程序运行特征 128
第二编 怎样编写一个位图及图形操作程序 128
二、程序创建过程 129
三、程序运行机制 133
1.什么是DDB位图,什么是DIB位图? 133
2.如何创建并显示一幅DDB位图? 134
3.如何显示一幅超过256色的位图? 135
4.如何对位图进行伸缩处理? 136
5.如何在同一程序中管理多个位图? 140
6.如何使位图能够随着窗口大小的改变而改变? 147
7.如何实现位图图像的全屏幕显示? 149
8.如何在位图中插入图标? 152
9.如何将一幅彩色位图转换为一幅单色三维位图? 156
10.如何为位图程序制作一个封面(即通常所说的闪屏)? 165
四、程序功能扩充 168
11.位图文件由哪几个部分组成? 168
12.如何对一个位图文件进行读写操作? 170
13.如何使程序窗口自适应位图大小? 206
14.如何为位图程序增加拷贝、剪切和粘贴功能? 208
15.如何在文件打开对话框中实现位图预览? 219
16.如何给位图显示程序增加图形绘制能力? 228
17.如何在绘制图形时改变鼠标的形状? 240
18.如何实现绘制图形时的拉伸效果? 241
19.如何对绘图工具的生成结果进行保存? 243
20.如何在位图显示程序中进行文字输入? 255
第三编 怎样在Windows窗口实现文字的滚动显示 262
一、程序运行特征 262
二、程序创建过程 263
三、程序运行机制 275
1.应用程序怎样实现文字在屏幕上的循环滚动显示? 275
2.如何改变应用程序中滚动显示文字的字体? 278
3.为什么在文档/视图结构的应用程序的OnDraw()函数中,创建好的字体和画刷不是直接使用,而是先通过SelectObject()函数装入后再使用,最后通过SelectObject()函数恢复原来的字体和画刷? 281
4.为什么程序在实现背景音乐时,不是在函数OnCreate()中直接调用音乐播放语句,而是采用了多线程这一方式? 286
5.如何在应用程序的状态条上实现文字的滚动显示? 287
6.如何避免(或减弱)文字滚动时显示屏幕的闪烁现象? 291
7.如何在背景上插入一幅精彩的位图(包括超过256色的位图)? 292
8.如何取消程序标题栏上的最大化按钮、最小化按钮、还原按钮及关闭按钮? 296
9.怎样在一幅渐变的背景中显示滚动的文字? 299
10.如何利用Windows自带的“字体”对话框改变滚动文字的字体? 310
11.如何使窗口客户区的文字大小实现渐变输出? 315
12.如何改变在屏幕上滚动显示的文字? 317
13.如何使窗口上滚动的文字能够随着窗口大小的改变而改变? 327
14.如何使一个应用程序始终处于所有应用程序的前台? 332
15.如何创建一个初始时极大或者极小的应用程序? 334
四、程序功能扩充 336
第四编 怎样编写一个Windows风格的简易计算器 373
一、程序运行特征 373
二、程序创建过程 374
1.计算器能够进行加、减、乘、除四则运算的运行机制是什么? 383
三、程序运行机制 383
2.计算器为什么能够进行数据的连续计算? 384
3.计算器能否在不退出程序的情况下重新进行另外一次计算? 384
4.计算器为什么能够即时将输入或运算结果显示出来? 384
5.能否改变计算器的背景颜色? 386
6.为什么在计算器程序启动后,按下键盘上的“Esc”键或“Enter”后,计算器会自动消失? 392
7.如何控制编辑框的外观和功能? 395
8.如何修改对话框的风格? 399
9.如何在对话框程序中控制按钮是否显示? 402
10.如何实现用鼠标拖动程序窗口中标题栏以外的区域来改变程序窗口在屏幕上的位置? 415
四、程序功能扩充 416