利用WIN32程序调用MFC库显示一个窗口并处理CREATE消息的步骤

//利用WIN32程序调用MFC库显示一个窗口并处理CREATE消息的步骤
//一、环境设置:
//本例使用的是VS2019:1.选择C++ window空项目 
//                    2.项目->属性->配置属性->高级 MFC的使用选择 在静态库中使用 MFC
//                                                 字符集选择    使用多字节字符集
//                    3.项目->属性->配置属性->链接器->系统->子系统选择 窗口
//二、需要包含的头文件
#include<afxwin.h>

//三、公有继承方式声明一个框架窗口类
class CMyFrameWnd :public CFrameWnd {
    DECLARE_MESSAGE_MAP() //在框架窗口类中声明消息映射宏
public:
    afx_msg int OnCreate(LPCREATESTRUCT pcs); //消息处理(*2)声明CREATE消息处理函数
};                                            //函数名及参数为MFC指定,afx_msg是MFC
                                              //消息处理函数的标识符,可以不写
                                              
//四、实现消息映射宏的消息处理宏入口
BEGIN_MESSAGE_MAP(CMyFrameWnd, CFrameWnd)  //与消息映射宏配用(参数1为该类的                                                                                                 //类名,参数2为该类基类的类名)
    ON_WM_CREATE() //消息处理(*1) (这里以窗口创建时发出的CREATE消息举例)
                                     //此处可以加入其它消息,但相同的消息只能加入一次
END_MESSAGE_MAP()  //与消息映射宏配用(无参)

//五、类外实现OnCreat消息处理函数
int  CMyFrameWnd::OnCreate(LPCREATESTRUCT pcs) { //消息处理(*3)
      AfxMessageBox("CREATE消息已被处理。。。点击后显示窗口");
      return CFrameWnd::OnCreate(pcs); //此处返回基类OnCreate函数的目的是我们自己写的消
                                                                //息处理函数不一定完整,剩余的任务由基类完成。
  }
      //消息处理小结:*1.将待处理消息放入消息入口宏之间;*2.在声明消息映射宏的后边声明消
      //              息处理函数(并注明public);*3.类外实现消息处理函数

//六、公有继承方式声明一个应用程序类并在类内声明重写InitInstance()虚函数。
class CMyWinApp :public CWinApp {  //应用程序类管理程序运行的流程
public:
    virtual BOOL InitInstance();
};

//七、重写InitInstance()虚函数
BOOL CMyWinApp::InitInstance() {  
    CMyFrameWnd* pFrame = new CMyFrameWnd;  //以new方式实例化一个在第三步骤声明的框
                                            //架窗口类,pFrame是其指针,该指针的用途
                                            //相当多,包含有窗口句柄等重要信息
    pFrame->Create(NULL, //调用pFrame的Create成员函数生成一个窗口
                   "MFCToolBar",
                   WS_OVERLAPPEDWINDOW,
                   CFrameWnd::rectDefault, //缺省值自己未定义,调用基类的缺省值
                   NULL);
    m_pMainWnd = pFrame; //将实例化框架窗口类的指针赋值给应用程序类的成员函数,使两个类
                                            //之间产生联系
    pFrame->ShowWindow(SW_SHOW); //调用pFrame的成员函数ShowWindow()显示窗口
    pFrame->UpdateWindow();  //调用pFrame的成员函数更新窗口
    return TRUE;
}

//八、实例化应用程序类
CMyWinApp theApp; //这是整个程序的关键,main函数即在其中,无此语句程序不能运行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值