一起学MFC(三)第一个MFC程序

   今天就要是用手工的方式写一个基本的MFC应用程序,来了解MFC应用程序的基本要素。

   先打开VC60工具,按下面的步骤操作。

   1. 进入VC File菜单中的New, 然后单击Projects. 选择Win32 Application选项。输入工程名称HelloWorld 点击Ok

       如下图

   

 

  2. 在Win32 Application中,选择An Empty Project选项。 如上图

    

 

    3.  下面添加源代码到工程。选择File ( New 添加Hello.h 与Hello.cpp到工程中。并输入源代码。 如下图

         

 

 

 

  4. 设置工程。 从Project菜单,选择Setting选项。  选择Use MFC In A Shared DLL  如下图

 

 

 

5.  运行程序。 Ctrl+F5    运行结果如下图

 

 

 

工程中使用到的源文件分别是Hello.h 与 Hello.cpp  代码分别如下

 

Hello.h 的代码

 

Hello.cpp的代码

 

 

下面我们分析一下上面的源代码。

 

1.  在Hello.cpp文件中包含了#include <afxwin.h>头文件,它是MFC类及一些全局函数的申明。(AFX就是那个写MFC的组织哈~)。(在MFC中,全局函数的形式提供了自己各类的API函数,名字以Afx打头的,它与类的成员函数有区别。比如AfxMessageBox与Windows MessageBox函数是全局等价,但不同于CWnd::MessageBox)

 

2. 应用程序对象

  

 

   从上面可以看到我们先从CWinApp中派生了自己的CMyApp类,然后全局一个实例对象myApp.

   MFC应用程序的核心就是基于CWinApp类的应用程序对象。CWinApp提供了消息循环来检索消息并将消息调度给应用程序的窗口。一个MFC应用程序可以有且仅有一个应用程序对象,此对象必须声明为在全局范围内有效,以便它在程序开始时即在内存中被实例化。

 

   在CMyApp中,只覆盖了一个从CWinApp类中继承来的虚函数CWinApp::InitInstance

   CWinApp::InitInstance是一个虚函数,它的功能是为应用程序提供一个自身初始化的机会。当从InitInstance返回FALSE将关闭应用程序。返回TRUE将允许程序继续进行。

 

   看CMyApp::InitInstance() 中的代码,如下

  

 

   (CWinApp中其它比较有趣的虚函数,CWinApp::ExitInstance,  CWinApp::OnIdle,可以参考MFC手册)

 

 3. 框架窗口对象

 

    代码如下

   

 

  

   

 

 4. 消息映射

     需要将消息映射添加到一个类中需要做的全部工作。

     第一步, 通过将DECLARE_MESSAGE_MAP ()语句添加到类声明中,声明消息映射。

     第二步, 通过放置标识消息的宏来执行消息映射,相应的类将在对BEGIN_MESSAGE_MAP与END_MESSAGE_MAP的调用之间处理消息

     第三步,添加成员函数来处理消息

 

     代码如下

    

 

    对于自定义的消息是添加ON_MESSAGE宏,它接上两个参数:消息ID与对应类成员函数地址。如ON_MESSAGE(WM_SETTEXT,OnSetText),

    OnSetText的声明方式如下

    afx_msg LRESULT OnSetText(WPARAM wParam,LPARAM lParam);

 

 

   好了,现在让我们大家动手来写一个MFC程序吧。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值