📄 book_text4.htm
字号:
焦点消息:</FONT>WM_SETFOCUS,WM_KILLFOCUS<BR>当一个窗口从非活动状态变为具有输入焦点的活动状态的时候,它就会收到WM_SETFOCUS消息,而当窗口失去输入焦点的时候它就会收到WM_KILLFOCUS消息。</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><FONT
color=#ff0000>6
定时器消息:</FONT>WM_TIMER<BR>当我们为一个窗口设置了定时器资源之后,系统就会按规定的时间间隔向窗口发送WM_TIMER消息,在这个消息中就可以处理一些需要定期处理的事情。</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><BR> 最后要指出的一点是,在WINDOWS环境下,消息的来源是多方面的,最常见的是用户的操作产生消息,系统在必要的时候也会向程序发送系统消息,其他在运行中的程序也可以向程序发送消息。此外,在程序的内部,也可以根据需要在适当的时候主动产生消息,比如主动产生WM_PAINT消息以实现需要的重画功能。</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 上面介绍了MESSAGE栏中主要的消息,在MEMBER
FUNCTION一栏中列出的是目前被选中的类已经有的成员函数。这些成员函数一般说来是与这个类可以接收的消息一一对应的。也就是说,一个成员函数一般总是用来处理某个特定的消息。如果在MESSAGE栏中的某个消息在程序中需要处理,但目前还没有相应的类成员函数,比如这里选中WM_TIMER这个消息,它目前还没有相应的对应的类的成员函数,单击ADD
FUNCTION按钮:</SPAN></P>
<P align=center><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><IMG
height=291 src="book_text4.files/book_t11.jpg" width=442
border=0><BR>图1.11</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 系统就自动为WM_TIMER消息在类中添加了对应的成员函数ONTIMER,单击EDITCODE按钮,可以发现系统已经自动生成了完成ONTIMER函数所需的基本代码,我们只要在这些基本代码的基础上再添加所需要的代码就可以了。</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 注意对话框中的ADD
CLASS按钮,它用来往当前应用程序中添加一个新的类 。单击后选中NEW菜单:</SPAN></P>
<P align=center><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><IMG
height=261 src="book_text4.files/book_t12.jpg" width=397
border=0><BR>图1.12</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 系统弹出了NEW
CLASS对话框用于生成一个新的类。在这个对话框中需要为类起个名字,设置类文件的名字,另外还要在BASE CLASS一栏
的下拉列表框中选择某个已有的类作为基类,设好需要的信息后单击OK就生成了一个新的类:</SPAN></P>
<P align=center><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><IMG
height=332 src="book_text4.files/book_t13.jpg" width=398
border=0><BR>图1.13</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> CLASS
WIZARD还有一些很强大的功能,这里就不再详细介绍,你会在不断的学习中慢慢地了解和掌握。</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 最后介绍一下集成环境提供的一个重要工具RESOUCR
EDITOR,也就是资源编辑器。在VC开发的应用程序中要用到大量的位图,菜单,工具条,对话框等各种资源。这些资源对于程序而言是相对独立的,所以可以对它们进行单独的编辑,然后使用在程序中。而RESOUCE
EDITOR正是为编辑资源提供了一种可视化的开发方法。极大地减轻了程序员的负担。</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 单击FILE菜单的OPEN菜单项,然后在对话框中选择打开TEST.RC文件,就可以开始使用资源编辑器了。在左边的工作区中按类型列出了程序中用到的所有的资源,双击其中的某个类型,比如双击MENU资源,MENU目录的下面列出的就是系统已经有的MENU类型的资源,选中其中一个并双击,在右边的工作区中列出了这个资源当前的样子,我们就可以在工作区中对资源进行可视化的编辑和修改了。</SPAN></P>
<P align=center><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><IMG
height=304 src="book_text4.files/book_t14.jpg" width=406
border=0><BR>图1.14</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 如何添加一个资源呢?单击INSERT菜单,选中RESOURCE菜单项,系统弹出INSERT
RESOURCE对话框。如图1.15:</SPAN></P>
<P align=center><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><IMG
height=256 src="book_text4.files/book_t15.jpg" width=389
border=0><BR>图1.15</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 在图1.15这个对话框,在这个对话框中选中一种资源类型,比如选择CURSOR类型,然后单击NEW按钮。在左边的工作区中就出现了我们新生成的资源的标识符,双击这个标识符,在右边的工作区中就可以对这个新的指针形状资源进行可视化编辑了。如图1.16:</SPAN></P>
<P align=center><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"><IMG
height=331 src="book_text4.files/book_t16.jpg" width=440
border=0><BR>图1.16</SPAN></P>
<P align=left><SPAN
style="FONT-SIZE: 10.5pt; mso-bidi-font-size: 10.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> 通过这部分内容的介绍,相信您已经对使用VISUAL
C++开发MFC应用程序的基本步骤有了认识。在下一章的内容当中,我们将结合WINDOWS的工作原理,详细地向您解释MFC类库的基本结构,以及MFC应用程序的基本框架——文档/视图结构。</SPAN></P></TD>
<TD width="3%" height=15></TD></TR>
<TR>
<TD width="2%" height=1></TD>
<TD vAlign=top width="95%" height=1><PRE></PRE></TD>
<TD width="3%"
height=1></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -