没有合适的资源?快使用搜索试试~ 我知道了~
visual c++ 入门教程,帮助大家入门。
资源推荐
资源详情
资源评论
木有页眉
Visual C++MFC 入门教程
目录
第一章 入门
如何学好
理解
消息机制
利用
开发
程序的优势
利用
进行开发的通用方法介绍
中常用类,宏,函数介绍
第二章 图形输出
和
有关的各种对象
在窗口中输出文字
使用点,刷子,笔进行绘图
在窗口中绘制设备相关位图,图标,设备无关位图
使用各种映射方式
多边形和剪贴区域
第三章 文档视结构
文档 视图 框架窗口间的关系和消息传送规律
接收用户输入
使用菜单
文档,视,框架之间相互作用
利用序列化进行文件读写
中所提供的各种视类介绍
第四章 窗口控件
!"
#"
!$$
%"&'!(%"
)*")*"#"
+,$''$
-%$
.,*$
/,$
$
01$
0利用
/223$
创建并使用
,$ $01$
#''$
关于
456,7
的使用方法
第五章 对话框
使用资源编辑器编辑对话框
创建有模式对话框
创建无模式对话框
在对话框中进行消息映射
在对话框中进行数据交换和数据检查
1
木有页眉
使用属性对话框
+使用通用对话框
-建立以对话框为基础的应用
.使用对话框作为子窗口
第六章 网络通信开发
!(
介绍
利用
!(
进行无连接的通信
利用
!(
建立有连接的通信
《 开发指南 》 闻怡洋文
第一章 入门
如何学好
这个问题很多朋友都问过我,当然流汗是必须的,但同时如果按照某种思路进行有计划的学习就会起
到更好的效果。万事开头难,为了帮助朋友们更快的掌握 开发,下面我将自己的一点体会讲一下:
、需要有好的 基础。正所谓“磨刀不误砍柴工”,最开始接触 时不要急于开始 程序
开发,而是应该进行一些字符界面程序的编写。这样做的目的主要是增加对语言的熟悉程度,同时也训
练自己的思维和熟悉一些在编程中常犯的错误。更重要的是理解并能运用 的各种特性,这些在以后
的开发中都会有很大的帮助,特别是利用 进行开发的朋友对 一定要能熟练运用。
、理解 的消息机制,窗口句柄和其他 句柄的含义和用途。了解和 各个类功能相近
的 /8 函数。
、一定要理解 中消息映射的作用。
、训练自己在编写代码时不使用参考书而是使用 9'26'。
、记住一些常用的消息名称和参数的意义。
、学会看别人的代码。
+、多看书,少买书,买书前一定要慎重。
-、闲下来的时候就看参考书。
.、多来我的主页。:6:
后面几条是我个人的一点意见,你可以根据需要和自身的情况选用适用于自己的方法。
此外我将一些我在选择参考书时的原则:
对于初学者:应该选择一些内容比较全面的书籍,并且书籍中的内容应该以合理的方式安排,在使用
该书时可以达到循序渐进的效果,书中的代码要有详细的讲解。尽量买翻译的书,因为这些书一般都比
较易懂,而且语言比较轻松。买书前一定要慎重如果买到不好用的书可能会对自己的学习积极性产生击。
对于已经掌握了 的朋友:这种程度的开发者应该加深自己对系统原理,技术要点的认识。需要选
择一些对原理讲解的比较透彻的书籍,这样一来才会对新技术有更多的了解,最好书中对技术的应用有
一定的阐述。尽量选择示范代码必较精简的书,可以节约银子。
此外最好涉猎一些辅助性的书籍。
理解 消息机制
系统是一个消息驱动的 6 ,什么是消息呢?我很难说得清楚,也很难下一个定义(谁在嘘
我),我下面从不同的几个方面讲解一下,希望大家看了后有一点了解。
2
木有页眉
、消息的组成:一个消息由一个消息名称(5,),和两个参数(8/;/,%8/;/)。当用户进
行了输入或是窗口的状态发生改变时系统都会发送消息到某一个窗口。例如当菜单转中之后会有
46/50 消息发送,8/;/ 的高字中(96;0<8$)=)是命令的 0 号,对菜单来讲
就是菜单 0。当然用户也可以定义自己的消息名称,也可以利用自定义消息来发送通知和传送数据。
、谁将收到消息:一个消息必须由一个窗口接收。在窗口的过程(508;6)中可以对消息进行分
析,对自己感兴趣的消息进行处理。例如你希望对菜单选择进行处理那么你可以定义对
46/50 进行处理的代码,如果希望在窗口中进行图形输出就必须对 48/5, 进行处理。
、未处理的消息到那里去了:>为窗口编写了默认的窗口过程,这个窗口过程将负责处理那些你不处
理消息。正因为有了这个默认窗口过程我们才可以利用 的窗口进行开发而不必过多关注窗口各
种消息的处理。例如窗口在被拖动时会有很多消息发送,而我们都可以不予理睬让系统自己去处理。
、窗口句柄:说到消息就不能不说窗口句柄,系统通过窗口句柄来在整个系统中唯一标识一个窗口,发
送一个消息时必须指定一个窗口句柄表明该消息由那个窗口接收。而每个窗口都会有自己的窗口过程,
所以用户的输入就会被正确的处理。例如有两个窗口共用一个窗口过程代码,你在窗口一上按下鼠标时
消息就会通过窗口一的句柄被发送到窗口一而不是窗口二。
、示例:下面有一段伪代码演示如何在窗口过程中处理消息
%65?$8$!<950&@5,'1',?2'@8/;/8@%8/;/=
A
!&<'1',?2'=
A使用 ,9 语句将各种消息分开
!'<48/5,=B
7$<=C在窗口需要重新绘制时进行输出
*$'(C
!'<4%,,65065=B
7$$(<=C在鼠标左键被按下时进行处理
*$'(C
'DB
!0'D8$!<=C对于其它情况就让系统自己处理
*$'(C
E
E
接下来谈谈什么是消息机制:系统将会维护一个或多个消息队列,所有产生的消息都回被放入或是插入
队列中。系统会在队列中取出每一条消息,根据消息的接收句柄而将该消息发送给拥有该窗口的程序的
消息循环。每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句
柄调用相应的窗口过程。而在没有消息时消息循环就将控制权交给系统所以 可以同时进行多个
任务。下面的伪代码演示了消息循环的用法:
&'<=
A
F1''1'<=C
D<FFG=
*$'(C
$''1'<=C
3
木有页眉
E
当该程序没有消息通知时 1''1' 就不会返回,也就不会占用系统的 8 时间。 下图为消息投递
模式
在 位的系统中系统中只有一个消息队列,所以系统必须等待当前任务处理消息后才可以发送下一消息
到相应程序,如果一个程序陷如死循环或是耗时操作时系统就会得不到控制权。这种多任务系统也就称
为协同式的多任务系统。H 就是这种系统。而 位的系统中每一运行的程序都会有一个消
息队列,所以系统可以在多个消息队列中转换而不必等待当前程序完成消息处理就可以得到控制权。这
种多任务系统就称为抢先式的多任务系统。.5, 就是这种系统。
利用 开发 程序的优势
借助 的优势为 开发开辟了一片新天地,同时也借助 /22!33$ 使开
发者摆脱离了那些每次都必写基本代码,借助 3$ 和消息映射使开发者摆脱了定义消息处理时
那种混乱和冗长的代码段。更令人兴奋的是利用 的封装功能使开发者摆脱 中各种句柄的
困扰,只需要面对 中的对象,这样一来使开发更接近开发语言而远离系统。(但我个人认为了解系
统原理对开发很有帮助)
正因为 是建立在 的基础上,所以我强调 语言基础对开发的重要性。利用 的封
装性开发者可以更容易理解和操作各种窗口对象;利用 的派生性开发者可以减少开发自定义窗口的
时间和创造出可重用的代码;利用虚拟性可以在必要时更好的控制窗口的活动。而且 本身所具备的
超越 语言的特性都可以使开发者编写出更易用,更灵活的代码。
在 中对消息的处理利用了消息映射的方法,该方法的基础是宏定义实现,通过宏定义将消息分派
到不同的成员函数进行处理。下面简单讲述一下这种方法的实现方法:
代码如下
#54# /#4/8<$)'@$)'=
AA/H4 4/8<$)'=
6544;#/,#<=
4
木有页眉
EE/H4 4/8
6546/50<0465,40;68065@05&1=
#504# /#4/8<=
经过编译后,代码被替换为如下形式(这只是作讲解,实际情况比这复杂得多):
#54# /#4/8<$)'@$)'=
$)'BB'8$!<=
A
!&<=
A
AA/H4 4/8<$)'=
6544;#/,#<=
!'<4;#/,#=B
6$''<=C
*$'(C
EE/H4 4/8
6546/50<0465,40;68065@05&1=
!'<46/50=B
D<96;0<8=FF0465,40;68065=
A
05&1<=C
E
*$'(C
#504# /#4/8<=
E
E
'8$! 就是窗口过程只要是该类的实例生成的窗口都使用该窗口过程。
所以了解了 的消息机制在加上对消息映射的理解就很容易了解 开发的基本思路了。
利用 进行开发的通用方法介绍
以下是我在最初学习 时所常用的开发思路和方法,希望能对初学 的朋友有所帮助和启发。
、开发需要读写文件的应用程序并且有简单的输入和输出可以利用单文档视结构。
、开发注重交互的简单应用程序可以使用对话框为基础的窗口,如果文件读写简单这可利用 ' 进行。
、开发注重交互并且文件读写复杂的的简单应用程序可以利用以 $)' 为基础视的单文档视结构。
、利用对话框得到用户输入的数据,在等级提高后可使用就地输入。
、在对多文档要求不强烈时尽量避免多文档视结构,可以利用分隔条产生单文档多视结构。
、在要求在多个文档间传递数据时使用多文档视结构。
+、学会利用子窗口,并在自定义的子窗口包含多个控件达到封装功能的目的。
-、尽量避免使用多文档多视结构。
.、不要使用多重继承并尽量减少一个类中封装过多的功能。
中常用类,宏,函数介绍
常用类
;'!:用来表示矩形的类,拥有四个成员变量:2'D*)$1&。分别表是左上角和右下角的
坐标。可以通过以下的方法构造:
;'!<@@$@*=C指明四个坐标
5
剩余63页未读,继续阅读
资源评论
jxjgssylsg
- 粉丝: 4
- 资源: 17
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- windows server 2019 安装net franework3.5.,添加功能-勾选3.5-确认步骤【指定备用源路径】,指定解压后路径,即可成功安装
- win10/win11均可使用
- 二甲基pep基于双光子激发细胞成像中的DNA探针设计
- java校园二手市场源码带本地搭建教程数据库 MySQL源码类型 WebForm
- 后端框架使用Django开发,数据库使用:Sql Server,前端使用Django模板,实现管理员对用户信息的增删改查,图书的增删改查,借阅管理,数据库日志查看,用户可以浏览图书信息,加入书架
- SQLServer-2022-Editions-datasheet.pdf
- EN-US-CNTNT-white-paper-DBMod-Microsoft-SQL-Server-2019-Technical-white-paper.pdf
- 基于Python+Django的交友系统,包括功能发布动态,私信聊天,发起活动,发表评论等
- Python毕业设计基于知识图谱的大学生能力评价与职位推荐系统源码(高分项目)
- java教师教学质量评价管理系统源码数据库 MySQL源码类型 WebForm
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功