书 名:Programming Windows 程式开发设计指南
出版日期:2000/6/2
书 号:957-8239-73-4
原 作 者:Charles Petzold
译 者:余孟学
书本主旨:
本书是地球上最有名、最受推崇、最多人使用的程式设计用书。
内容简介:
“到 Petzold 的书中找找”——仍然是解决 Windows 程式开发各种疑难
杂症时的灵丹妙药。在第五版的《Windows 程式开发设计指南》中,作者身
为倍受敬重的 Windows Pioneer Award(Windows 开路先锋奖)得主,依据
最新版本 Windows 作业系统,以可靠的取材资料校定这一本经典之作——再
一次深入探索了 Win32 程式设计介面的根本重心。
本书特色:
基本入门:输出、输入、对话方块
对 Unicode 的介绍
图形处理:绘图、文字与字体、点阵图形与 metafile
系统核心与印表机
声音与音乐
动态连结程式库
多工与多执行绪
多重文件介面
网际网路与企业内网路程式设计
使用对象:
ALL
bbs.theithome.com
BookMark : 326
基础的重要性(程序员之路)
学习编程有几年了,感觉走了不少弯路,而不少的学弟学妹又在重蹈我当初的覆辙,不免有些痛心。最近在网
上也看了许多前辈们的经验建议,再结合自己的学习经历在这里谈谈基础的重要性,希望帮助大家少走些弯
路。
什么是基础呢?就是要把我们大学所学的离散数学,算法与数据结构,操作系统,计算机体系结构,编译原理
等课程学好,对计算机的体系,CPU本身,操作系统内核,系统平台,面向对象编程,程序的性能等要有深层次的掌握。
初学者可能体会不到这些基础的重要性,学习jsp,donet,mfc,vb的朋友甚至会对这些嗤之以鼻,但是一开始没学
好基础就去学jsp或donet会产生很坏的影响,而且陷入其中不能自拔。
我上大二的时候还对编程没什么概念,就上了门C++也不知道能干什么,老师说MFC也不知道是什么东西,
看别的同学在学asp.net就跟着学了,然后就了解到.net,j2ee,php是什么了,就觉得软件开发就是用这些了,而上
的那些专业课又与我们学的sqlserver啊,css啊,ajax啊,毫无关系,就感慨啊,还不如回家自学去就为一个文凭吗?
还不如去培训,浪费这么多钱.于是天天基本上没去上什么课,天天就在做网站,几个学期就做了三个网站。感觉做
这些网站就是学到些技巧,没什么进步,这些技巧就好比别人的名字,告诉你你就知道了,网上也都可以搜到。那时
候就觉得把.net学好就行了,搞j2ee的比较难,搞api编程就别想了,操作系统更是望尘莫及了。后来随着学习
的深入和看了网上许多前辈们的建议才对这些基础的重要性有所体会。
虽然.net或java的开发并不直接用到汇编,操作系统这些,但是不掌握这些基础是有很大问题的,因为你只知
其然不知其所有然,在mfc和.net里面控件一拖什么都做好了,很方便,但是出了问题可能就解决不了,有些在
网上搜都搜不到。这就是基础没打好,不知道它的原理就不知道出错的原因。在学.net的时候常会讨论那些控件
该不该用别人说尽量别用也不知道为什么?不让用是因为你在高层开发,你不知道它的原理出错了你可能解决不
了,但其实是应该用的,不然人家开发它干嘛,但要在了解它的原理后去用就会很方便。
要编写出优秀的代码同样要扎实的基础,如果数据结构和算法学的不好,怎么对程序的性能进行优化,怎样
从类库中选择合适的数据结构。如果不了解操作系统,怎样能了解这些开发工具的原理,它们都是基于操作系统
的。不了解汇编,编译原理,怎么知道程序运行时要多长时间要多少内存,就不能编出高效的代码。
如果没有学好基础一开始就去学.net,java这些越往后就会觉得越吃力,它们涉及的技术太多了,而且不但
在更新,对于三层啊,mvc,orm这些架构,你只会用也不明白为什么用,就感觉心里虚,感觉没学好。而你把
面向对象,软件工程,设计模式这些基础学好了再去看这些就可以一不变应万变。
大家不要被新名词、新技术所迷惑.NET、XML等等技术固然诱人,可是如果自己的基础不扎实,就像是在
云里雾里行走一样,只能看到眼前,不能看到更远的地方。这些新鲜的技术掩盖了许多底层的原理,要想真正
的学习技术还是走下云端,扎扎实实的把基础知识学好,有了这些基础,要掌握那些新技术也就很容易了。
开始编程应该先学C/C++,系统api编程,因为它们更接近底层,学习他们更能搞清楚原理。学好了c/C++
编程和基础,再去学习mfc,.net这些就会比较轻松,而且很踏实。假设学习VB编程需要4个月,学习基础课程和
VC的程序设计需要1年。那么如果你先学VB,再来学习后者,时间不会减少,还是1年,而反过来,如果先学习
后者,再来学VB,也许你只需要1个星期就能学得非常熟练。
bbs.theithome.com
教的表面看来是马步冲权实则都是内功心法,郭靖拜师洪七之后开始练习降龙十八掌凭借的就是这深厚的内
功,吞食蝮蛇宝血又加上练习了周博通传授的九阴真经和外加功夫双手互博技之后,终于练就行走江湖的武
功,由此可见马玉道长传授给了郭靖的是最基础的,也是最重要的观念,编程也好比盖高楼,根基没打好早晚有
一天会挎掉的,而且盖得越高,损失也越惨重。这些底层知识和课本不是没有用也不是高深的不能学,而是我
们必须掌握的基础。
这些是个人的愚见,说的不是很清楚,大家可以看看这些前辈们的经验,相信看完后大家一定会有所体会
说了这么多无非是想告诫大家要打好扎实的基础,不要只顾追求时髦的技术,打好基础再去学那些技术或是
参加些培训,对自身的发展会更好的。
基础这么重要怎样学好它呢?我觉得学好它们应该对照这些基础课程所涉及的方面,多看一些经典书籍,像算
法导论,编程珠玑,代码大全(具体介绍在本论坛每本书的版块里)等,这些经典书籍不仅能帮助我们打好基础,而且
对我们的程序人生也能产生莫大的影响,相信认真研究看完这些书籍后,我们的程序之路会十分顺畅。然而这
些书籍并不好读,有些甚至相当难读,国内的大学用这些书当教材的也不多,这些书又偏向理论,自己读起来难免会
有些枯燥无味。于是就想到建一个论坛,大家共同讨论学习这些书籍,就会学的更踏实更牢固更有趣,这样就能
为以后的学习打下扎实的基础。
1.为计算机初学者或基础不太扎实的朋友指明方向,要注重内功
2.为学习者推荐经典书籍,指明应看哪些书籍,怎样练内功
3.为学习者提供一个交流的地方,更容易学好,不会那么枯燥
4.对每本书分章分别讨论,更专,会学的更踏实更牢固
5.讨论的都是经典书籍,每一本都会让我们受益匪浅,对每本书分别讨论是很有意义的。
本论坛特色: bbs.theithome.com
的。为了方便大家阅读,我把这些前辈们的建议的文章整理成了pdf,大家在下面下载吧!希望对大家有帮助。pdf
地址:http://bbs.theithome.com/read-htm-tid-123.html
编程就好比练功,如果学习.net,mfc,vb等具体的语言和工具是外功(招式),对基础的学习就是内功,只注重
招式而内功不扎实是不可能成为高手的。很多人会认为《射雕英雄传》中马玉道长什么都没有教郭靖,马道长
bbs.theithome.com
Programming Windows 程式开发设计指南(Windows95 程序设计 第五版)
第 1 页
目 录
第一章 开始 ......................................................................................................................................1
WINDOWS 环境 .............................................................................................................................1
Windows 简史 ..............................................................................................................................2
Windows 方面 ..............................................................................................................................3
动态连结.......................................................................................................................................5
WINDOWS 程式设计选项 .............................................................................................................6
API 和记忆体模式 .......................................................................................................................7
语言选项.......................................................................................................................................8
程式开发环境...............................................................................................................................9
API 文件 .....................................................................................................................................10
编写第一个 WINDOWS 程式 ......................................................................................................10
文字模式(Character-Mode)模型 ..........................................................................................10
同样效果的 Windows 程式 .......................................................................................................11
表头档案.....................................................................................................................................12
程式进入点.................................................................................................................................13
MessageBox 函式.......................................................................................................................14
编译、连结和执行.....................................................................................................................15
第二章 UNICODE 简介 ................................................................................................................17
字元集简史 ....................................................................................................................................17
美国标准.....................................................................................................................................18
国际方面.....................................................................................................................................19
扩展 ASCII.................................................................................................................................20
双位元组字元集.........................................................................................................................22
Unicode 解决方案 ......................................................................................................................22
宽字元和 C....................................................................................................................................23
char 资料型态.............................................................................................................................24
宽字元.........................................................................................................................................24
宽字元程式库函式.....................................................................................................................25
维护单一原始码.........................................................................................................................27
宽字元和 WINDOWS...................................................................................................................28
Windows 表头档案类型 ............................................................................................................28
Windows 函式呼叫 ....................................................................................................................30
Windows 的字串函式 ................................................................................................................31
在 Windows 中使用 printf..........................................................................................................31
格式化讯息方块.........................................................................................................................33
本书与国际化.............................................................................................................................34
第三章 视窗和讯息 ........................................................................................................................36
自己的视窗 ....................................................................................................................................36
总体结构.....................................................................................................................................36
HELLOWIN 程式.......................................................................................................................38
通盘考量.....................................................................................................................................41
Windows 函式呼叫 ....................................................................................................................41
bbs.theithome.com
Programming Windows 程式开发设计指南(Windows95 程序设计 第五版)
第 2 页
大写字母识别字.........................................................................................................................42
新的资料型态.............................................................................................................................43
代号简介.....................................................................................................................................44
匈牙利表示法.............................................................................................................................44
注册视窗类别.............................................................................................................................46
建立视窗.....................................................................................................................................51
显示视窗.....................................................................................................................................53
讯息回圈.....................................................................................................................................54
视窗讯息处理程式.....................................................................................................................55
处理讯息.....................................................................................................................................56
播放音效档案.............................................................................................................................57
WM_PAINT 讯息.......................................................................................................................57
WM_DESTROY 讯息................................................................................................................59
WINDOWS 程式设计的难点 .......................................................................................................60
别呼叫我,我会呼叫您.............................................................................................................60
伫列化讯息与非伫列化讯息.....................................................................................................61
行动迅速.....................................................................................................................................63
第四章 输出文字 ............................................................................................................................64
绘制和更新 ....................................................................................................................................64
WM_PAINT 讯息.......................................................................................................................65
有效矩形和无效矩形.................................................................................................................66
GDI 简介 ........................................................................................................................................66
装置内容.....................................................................................................................................67
取得装置内容代号:方法一.....................................................................................................67
绘图资讯结构.............................................................................................................................68
取得装置内容代号:方法二.....................................................................................................71
TextOut:细节............................................................................................................................71
系统字体.....................................................................................................................................73
字元大小.....................................................................................................................................74
文字大小:细节.........................................................................................................................75
格式化文字.................................................................................................................................76
综合使用.....................................................................................................................................77
SYSMETS1.C 视窗讯息处理程式............................................................................................84
空间不够.....................................................................................................................................85
显示区域的大小.........................................................................................................................86
卷动列 ............................................................................................................................................87
卷动列的范围和位置.................................................................................................................88
卷动列讯息.................................................................................................................................90
在 SYSMETS 中加入卷动功能.................................................................................................92
绘图程式的组织.........................................................................................................................96
建立更好的滚动 ............................................................................................................................97
卷动列资讯函式.........................................................................................................................97
卷动范围.....................................................................................................................................99
新 SYSMETS............................................................................................................................100
不用滑鼠怎么办.......................................................................................................................106
bbs.theithome.com