MFC day01

编写第一个MFC程序
1 编写第一个MFC程序
1.1 问题
使用MFC类创建一个基本的窗口程序。

1.2 方案
1 基于Win32 Application创建项目,设置MFC的开发环境

1.1 在stdafx.h中,将<windows.h>修改为<afxwin.h>。

1.2 project->setting,设置使用MFC库。

2 删除原有的WinMain()函数。

3 添加CWinApp类的派生类CMyWinApp类;

添加CFrameWnd类的派生类CMyFrameWnd类。

使用CMyWinApp定义全局对象theApp。

4 重写CWinApp::InitInstance()函数,在函数中,完成窗口的创建。

1.3 步骤
实现此案例需要按照如下步骤进行。

步骤一:添加应用程序类

添加CWinApp类的派生类CMyWinApp类。并声明初始化应用程序成员函数InitInstance。代码如下所示:

class CMyWinApp:public CWinApp
{
virtual BOOL InitInstance( );
};
步骤二:完成应用程序窗口的创建

编写InitInstance函数,完成应用程序窗口的创建。代码如下所示:

BOOL CMyWinApp::InitInstance( )
{
CMainFrame * pFrame = new CMainFrame;
pFrame->Create( NULL, “MFCWnd” );
m_pMainWnd = pFrame;
m_pMainWnd->UpdateWindow( );
return TRUE;
}
步骤三:设置主窗口

添加CFrameWnd类的派生类CMyFrameWnd类。并声明窗口的处理消息成员函数。代码如下所示:

class CMainFrame:public CFrameWnd
{
virtual LRESULT WindowProc( UINT message, WPARAM wParam, LPARAM lParam );
};
步骤四:主窗口消息处理

编写WindowProc窗口消息处理函数,设置主窗口属性。代码如下所示:

LRESULT CMainFrame::WindowProc( UINT message, WPARAM wParam, LPARAM lParam )
{
switch(message)
{
case WM_PAINT:
PAINTSTRUCT ps = { 0 };
HDC hDC = ::BeginPaint( m_hWnd, &ps );
TextOut( hDC, 100, 100, “Hello MFC”, 9 );
::EndPaint( m_hWnd, &ps );
break;
}
return CFrameWnd::WindowProc(message,wParam,lParam);
}
1.4 完整代码
本案例的完整代码如下所示:

class CMainFrame:public CFrameWnd
{
virtual LRESULT WindowProc( UINT message, WPARAM wParam, LPARAM lParam );
};
LRESULT CMainFrame::WindowProc( UINT message, WPARAM wParam, LPARAM lParam )
{
switch(message)
{
case WM_PAINT:
PAINTSTRUCT ps = { 0 };
HDC hDC = ::BeginPaint( m_hWnd, &ps );

    TextOut( hDC, 100, 100, "Hello MFC", 9 );
    
        ::EndPaint( m_hWnd, &ps );
    break;    
}
return CFrameWnd::WindowProc(message,wParam,lParam);

}
class CMyWinApp:public CWinApp
{
virtual BOOL InitInstance( );
};
BOOL CMyWinApp::InitInstance( )
{
CMainFrame * pFrame = new CMainFrame;
pFrame->Create( NULL, “MFCWnd” );
m_pMainWnd = pFrame;
m_pMainWnd->UpdateWindow( );
return TRUE;
}
CMyWinApp theApp;
运行结果:如图-1所示
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值