⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 learnvc.html

📁 C++参考大全第四版
💻 HTML
📖 第 1 页 / 共 5 页
字号:
<UL>
<LI>在第五步中,对话框上部选择是否为程序自动生成注释,对话框的下部用来选择使用</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>类库的方式是动态链接库方式还是静态链接方式,使用动态链接库方式时在以后生成的可执行应用程序中并不真正包含</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>类库中的对象,而使用静态链接方式时,则把</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>库中的代码生成为应用程序的一部分,这时生成的应用程序也就相对大一些。选好后单击</FONT><FONT SIZE=3>NEXT<IMG SRC="Image11.gif" WIDTH=467 HEIGHT=358></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>按钮。</LI></UL>

<P ALIGN="CENTER">图</FONT><FONT SIZE=3>1.7</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P> </P>

<UL>
<LI>进入</FONT><FONT SIZE=3>APPWIZARD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的最后一个步骤,对话框中的提示信息指明了系统将要自动创建的对象和相关文件,以及派生出这些对象的</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的基类等内容。在这一步当中,我们还可以对视图类的基类进行选择,单击</FONT><FONT SIZE=3>FINISH</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>按钮。</LI></UL>

<P ALIGN="CENTER"><IMG SRC="Image12.gif" WIDTH=418 HEIGHT=321>图</FONT><FONT SIZE=3>1.8</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P> </P>

<UL>
<LI>游览一下对话框中对将要生成的程序的有关信息的描述后单击</FONT><FONT SIZE=3>OK</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>按钮。系统就自动为我们生成一个使用</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>基本类库的应用程序的基本框架,在以后将会对这个框架的内容作详细的介绍。</LI></UL>

<P> </P>
<P ALIGN="CENTER"><IMG SRC="Image13.gif" WIDTH=408 HEIGHT=380>图</FONT><FONT SIZE=3>1.9</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P> </P>
</FONT><FONT FACE="宋体" LANG="ZH-CN"><P><IMG SRC="Image14.gif" WIDTH=401 HEIGHT=264></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>接下来介绍</FONT><FONT SIZE=3>VC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>集成环境中提供的一个很重要的工具</FONT><FONT SIZE=3>CLASSWIZARD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,它主要是用来管理程序中的对象和消息的,这个工具对于</FONT><FONT SIZE=3>MFC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>编程显得尤为重要。</FONT><FONT SIZE=3> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>单击</FONT><FONT SIZE=3>VIEW</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>菜单的</FONT><FONT SIZE=3>CLASSWIZARD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>项,就可以运行</FONT><FONT SIZE=3>MFC CLASSWIZARD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,在这个对话框中就可以对程序中的对象和消息进行管理了。</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN"><P ALIGN="CENTER">图</FONT>1.10</P>
<FONT FACE="宋体" LANG="ZH-CN"><P> </P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P>在对话框中的</FONT><FONT SIZE=3>MESSAGE MAPS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>标签下,</FONT><FONT SIZE=3>PROJECT</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>栏中的内容代表当前程序的名字。</FONT><FONT SIZE=3>CLASSWNAME</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>下拉列表框列出的就是程序当前用到的所有类的名字,在</FONT><FONT SIZE=3>MESSAGE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一栏中列出的就是一个选中的类所能接收到的所有的消息,在</FONT><FONT SIZE=3>WINDOWS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>程序设计中,消息是个极为重要的概念,用户通过窗口界面的各种操作最后都转化为发送到程序中的对象的各种消息,下面就向您介绍在</FONT><FONT SIZE=3>WINDOWS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>程序设计中最常用的一些消息:</P>
</FONT><B><FONT SIZE=3><P>1  </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>窗口消息:</FONT><FONT SIZE=3>WM_CREATE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>WM_DESTROY</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>WM_CLOSE</P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P>我们创建一个窗口对象的时候,这个窗口对象在创建过程中收到的就是</FONT><FONT SIZE=3>WM_CREATE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息,对这个消息的处理过程一般用来设置一些显示窗口前的初始化工作,如设置窗口的大小,背景颜色等,</FONT><FONT SIZE=3>WM_DESTROY</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息指示窗口即将要被撤消,在这个消息处理过程中,我们就可以做窗口撤消前的一些工作。</FONT><FONT SIZE=3>WM_CLOSE wm_close</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息发生在窗口将要被关闭之前,在收到这个消息后,一般性的操作是回收所有分配给这个窗口的各种资源。在</FONT><FONT SIZE=3>windows</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>系统中资源是很有限的,所以回收资源的工作还是非常重要的。</P>
</FONT><B><FONT SIZE=3><P>2  </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>键盘消息:</FONT><FONT SIZE=3>WM_CHAR</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>WM_KEYDOWN</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>WM_KEYUP</P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P>这三个消息用来处理用户的键盘数据,当用户在键盘上按下某个键的时候,会产生</FONT><FONT SIZE=3>WM_KEYDOWN</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息,释放按键的时候又回产生</FONT><FONT SIZE=3>WM_KEYUP</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息,所以</FONT><FONT SIZE=3>WM_KEYDOWN</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>与</FONT><FONT SIZE=3>WM_KEYUP</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息一般总是成对出现的,至于</FONT><FONT SIZE=3>WM_CHAR</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息是在用户的键盘输入能产生有效的</FONT><FONT SIZE=3>ASCII</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>码时才会发生。这里特别提醒要注意前两个消息与</FONT><FONT SIZE=3>WM_CHAR</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息在使用上是有区别的。在前两个消息中,伴随消息传递的是按键的虚拟键码,所以这两个消息可以处理非打印字符,如方向键,功能键等。而伴随</FONT><FONT SIZE=3>WM_CHAR</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息的参数是所按的键的</FONT><FONT SIZE=3>ASCII</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>码,</FONT><FONT SIZE=3>ASCII</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>码是可以区分字母的大小写的。而虚拟键码是不能区分大小写的。</P>
</FONT><FONT SIZE=3><P>3  </FONT><B><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>鼠标消息:</FONT><FONT SIZE=3>WM_MOUSEMOVE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>WM_LBUTTONDOWN</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3> WM_LBUTTONUP</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3> WM_LBUTTONDBCLICK</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>WM_RBUTTONDOWN</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3> WM_RBUTTONUP</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>WM_RBUTTONDBCLICK</P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P>这组消息是与鼠标输入相关的,</FONT><FONT SIZE=3>WM_MOUSEMOVE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息发生在鼠标移动的时候,剩余的六个消息则分别对应于鼠标左右键的按下、释放、双击事件,要指出的是</FONT><FONT SIZE=3>WINDOWS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>系统并不是在鼠标每移动一个像素时都产生</FONT><FONT SIZE=3>MOUSEMOVE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息,这一点要特别注意。</P>
</FONT><B><FONT SIZE=3><P>4 </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>另一组窗口消息:</FONT><FONT SIZE=3>WM_MOVE , WM_SIZE , WM_PAINT </P>
</B><P> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>当窗口移动的时候产生</FONT><FONT SIZE=3>WM_MOVE </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息,窗口的大小改变的时候产生</FONT><FONT SIZE=3>WM_SIZE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息,而当窗口工作区中的内容需要重画的时候就会产生</FONT><FONT SIZE=3>WM_PAINT</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息。</P>
</FONT><B><FONT SIZE=3><P>5 </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>焦点消息</FONT><FONT SIZE=3>WM_SETFOCUS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,</FONT><FONT SIZE=3>WM_KILLFOCUS</P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P>当一个窗口从非活动状态变为具有输入焦点的活动状态的时候,它就会收到</FONT><FONT SIZE=3>WM_SETFOCUS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息,而当窗口失去输入焦点的时候它就会收到</FONT><FONT SIZE=3>WM_KILLFOCUS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息。</P>
</FONT><B><FONT SIZE=3><P>6  </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>定时器消息:</FONT><FONT SIZE=3>WM_TIMER</P>
</B></FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P>当我们为一个窗口设置了定时器资源之后,系统就会按规定的时间间隔向窗口发送</FONT><FONT SIZE=3>WM_TIMER</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息,在这个消息中就可以处理一些需要定期处理的事情。</P>
<P>最后要指出的一点是,在</FONT><FONT SIZE=3>WINDOWS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>环境下,消息的来源是多方面的,最常见的是用户的操作产生消息,系统在必要的时候也会向程序发送系统消息,其他在运行中的程序也可以向程序发送消息。此外,在程序的内部,也可以根据需要在适当的时候主动产生消息,比如主动产生</FONT><FONT SIZE=3>WM_PAINT</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息以实现需要的重画功能。</P>
<P>&#9;上面介绍了</FONT><FONT SIZE=3>MESSAGE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>栏中主要的消息,在</FONT><FONT SIZE=3>MEMBER FUNCTION</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一栏中列出的是目前被选中的类已经有的成员函数。这些成员函数一般说来是与这个类可以接收的消息一一对应的。也就是说,一个成员函数一般总是用来处理某个特定的消息。如果在</FONT><FONT SIZE=3>MESSAGE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>栏中的某个消息在程序中需要处理,但目前还没有相应的类成员函数,比如这里选中</FONT><FONT SIZE=3>WM_TIMER</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>这个消息,它目前还没有相应的对应的类的成员函数,</P>
<P>单击</FONT><FONT SIZE=3>ADD FUNCTION</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>按钮,</P>
<P><IMG SRC="Image15.gif" WIDTH=453 HEIGHT=298></FONT><FONT SIZE=3>                                                                  </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>图</FONT><FONT SIZE=3>1.11</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P>系统就自动为</FONT><FONT SIZE=3>WM_TIMER</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>消息在类中添加了对应的成员函数</FONT><FONT SIZE=3>ONTIMER</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,单击</FONT><FONT SIZE=3>EDITCODE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>按钮,可以发现系统已经自动生成了完成</FONT><FONT SIZE=3>ONTIMER</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>函数所需的基本代码,我们只要在这些基本代码的基础上再添加所需要的代码就可以了。</P>
<P><IMG SRC="Image16.gif" WIDTH=408 HEIGHT=268>注意对话框中的</FONT><FONT SIZE=3>ADD CLASS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>按钮,它用来往当前应用程序中添加一个新的类</FONT><FONT SIZE=3> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</P>
<P>单击后选中</FONT><FONT SIZE=3>NEW</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>菜单,</P>
<P ALIGN="CENTER">图</FONT><FONT SIZE=3>1.12</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P> </P>
<P><IMG SRC="Image17.gif" WIDTH=410 HEIGHT=342>系统弹出了</FONT><FONT SIZE=3>NEW CLASS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>对话框用于生成一个新的类。在这个对话框中需要为类起个名字,设置类文件的名字,另外还要在</FONT><FONT SIZE=3>BASE CLASS</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>一栏</FONT><FONT SIZE=3> </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>的下拉列表框中选择某个已有的类作为基类,设好需要的信息后单击</FONT><FONT SIZE=3>OK</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>就生成了一个新的类。</P>
<P ALIGN="CENTER">图</FONT><FONT SIZE=3>1.13</P>
<P>CLASS WIZARD</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>还有一些很强大的功能,这里就不再详细介绍,你会在不断的学习中慢慢地了解和掌握。</P>
<P>最后介绍一下集成环境提供的一个重要工具</FONT><FONT SIZE=3>RESOUCR EDITOR</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>,也就是资源编辑器。在</FONT><FONT SIZE=3>VC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>开发的应用程序中要用到大量的位图,菜单,工具条,对话框等各种资源。这些资源对于程序而言是相对独立的,所以可以对它们进行单独的编辑,然后使用在程序中。而</FONT><FONT SIZE=3>RESOUCE EDITOR</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>正是为编辑资源提供了一种可视化的开发方法。极大地减轻了程序员的负担。</P>
<P>单击</FONT><FONT SIZE=3>FILE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>菜单的</FONT><FONT SIZE=3>OPEN</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>菜单项,然后在对话框中选择打开</FONT><FONT SIZE=3>TEST.RC</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>文件,就可以开始使用资源编辑器了。在左边的工作区中按类型列出了程序中用到的所有的资源,双击其中的某个类型,比如双击</FONT><FONT SIZE=3>MENU</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>资源,</FONT><FONT SIZE=3>MENU</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>目录的下面列出的就是系统已经有的</FONT><FONT SIZE=3>MENU</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>类型的资源,选中其中一个并双击,在右边的工作区中列出了这个资源当前的样子,我们就可以在工作区中对资源进行可视化的编辑和修改了。</P>
<P><IMG SRC="Image18.gif" WIDTH=416 HEIGHT=312></FONT><FONT SIZE=3>                                                   </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>&#9;&#9;</FONT><FONT SIZE=3>  </FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>图</FONT><FONT SIZE=3>1.14</P>
</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3><P> </P>
<P>如何添加一个资源呢?单击</FONT><FONT SIZE=3>INSERT</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>菜单,选中</FONT><FONT SIZE=3>RESOURCE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>菜单项,系统弹出</FONT><FONT SIZE=3>INSERT RESOURCE</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>对话框。如图</FONT><FONT SIZE=3>1.15</FONT><FONT FACE="宋体" LANG="ZH-CN" SIZE=3>。</P>
<P> </P>
<P> </P>
<P> </P>
<P> </P><DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>
<DIR>

<P><IMG SRC="Image19.gif" WIDTH=400 HEIGHT=264>图</FONT><FONT SIZE=3>1.15</P></DIR>
</DIR>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -