文章目录
- 配置设置
- 建立MFC工程的三部曲
- 1.建立CWinApp 类的派生类
- 2.重写CWinApp
- 3.定义CWinApp派生类的全局变量
- 全部代码
- 添加对话框资源
- 创建窗口类继承CDialog
- 导入资源文件
- 修改资源文件ID
- 加载资源文件
- 全部代码
配置设置
建立MFC工程的三部曲
1.建立CWinApp 类的派生类
class CFirstApp :public CWinApp
{
};
2.重写CWinApp
class CFirstApp :public CWinApp
{
public:
//InitInstance当作我们的入口函数,MFC初始化函数
BOOL InitInstance()
{
MessageBox(NULL, "这是我的MFC程序", "提示", MB_OK);
return TRUE;
}
};
3.定义CWinApp派生类的全局变量
CFirstApp theApp;//这个名字叫什么随便都可以
全部代码
#include <afxwin.h> //MFC 的核心头文件,里面包含#include<Windows.h>
//从Win32 过度到MFC
//建立MFC工程的三部曲
//1.建立CWinApp 类的派生类
//2.重写CWinApp
class CFirstApp :public CWinApp
{
public:
//InitInstance当作我们的入口函数,MFC初始化函数
//启动管理,初始化,虚函数
BOOL InitInstance()
{
MessageBox(NULL, "这是我的MFC程序", "提示", MB_OK);
return TRUE;//初始化
}
//退出:清理工作
int ExitInstacne()
{
return 0;//返回函数:返回到WinMain函数的返回值
}
};
//3.定义CWinApp派生类的全局变量
//MFC 应用程序的核心对象,有且只有一个
CFirstApp theApp;//这个名字叫什么随笔都可以
添加对话框资源
CDialog 对话框窗口类函数
CDialog( LPCTSTR lpszTemplateName, CWnd* pParentWnd = NULL );
CDialog( UINT nIDTemplate, CWnd* pParentWnd = NULL );
创建窗口类继承CDialog
//对话框类
//一个窗口类,只处理一个窗口
class CMainDlg :public CDialog
{
public:
CMainDlg() :CDialog(IDD_MAIN_DLG)
{
}
//初始化函数,虚函数,重写
BOOL OnInitDialog()
{
//设置窗口标题
SetWindowText("我的第一个MFC");
//Win32 ,WM_SETICON
//SetIcon();
return TRUE;
}
};
//从Win32 过度到MFC
//建立MFC工程的三部曲
//1.建立CWinApp 类的派生类
//2.重写CWinApp
class CFirstApp :public CWinApp
{
public:
//InitInstance当作我们的入口函数,MFC初始化函数
//启动管理,初始化,虚函数
BOOL InitInstance()
{
//CDialog dlg;//专门操作对话框的类
CMainDlg dlg;
dlg.DoModal();//弹出对话框
return TRUE;//初始化
}
//退出:清理工作
int ExitInstacne()
{
return 0;//返回函数:返回到WinMain函数的返回值
}
};
//3.定义CWinApp派生类的全局变量
//MFC 应用程序的核心对象,有且只有一个
CFirstApp theApp;//这个名字叫什么随便都可以
效果
导入资源文件
修改资源文件ID
加载资源文件
//初始化函数,虚函数,重写
BOOL CMainDlg::OnInitDialog()
{
//设置窗口标题
SetWindowText("我的第一个MFC");
//加载icon
//Win32 ,WM_SETICON
//凡是调用Windows API 前面加两个::
//方法一 AfxGetInstanceHandle获取全局句柄
//m_hIcon =::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(ID_MAIN_ICO));
//方法二
m_hIcon = ::LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(ID_MAIN_ICO));
//方法三
//m_hIcon = theApp.LoadIcon(ID_MAIN_ICO);
SetIcon(m_hIcon, TRUE);//设置大图标 按table 可以显示
SetIcon(m_hIcon, FALSE);//设置小图标
return TRUE;
}
全部代码
stdafx.h 加载头文件
#include <afxwin.h> //MFC 的核心头文件
#include "resource.h"
FirstMFC.h
class CFirstApp :public CWinApp
{
public:
BOOL InitInstance();
//退出:清理工作
int ExitInstacne();
};
FirstMFC.cpp
#include "stdafx.h"
#include "FirstMFC.h"
#include "CMainDlg.h"
//3.定义CWinApp派生类的全局变量
//MFC 应用程序的核心对象,有且只有一个
CFirstApp theApp;//这个名字叫什么随便都可以
//InitInstance当作我们的入口函数,MFC初始化函数
//启动管理,初始化,虚函数
BOOL CFirstApp::InitInstance()
{
//CDialog dlg;//专门操作对话框的类
CMainDlg dlg;
dlg.DoModal();//弹出对话框
return TRUE;//初始化
}
int CFirstApp::ExitInstacne()
{
return 0;//返回函数:返回到WinMain函数的返回值
}
CMainDlg.h
//对话框类
//一个窗口类,只处理一个窗口
class CMainDlg :public CDialog
{
public:
CMainDlg();
//初始化函数,虚函数,重写
BOOL OnInitDialog();
private:
HICON m_hIcon;
};
CMainDlg.cpp
#include "stdafx.h"
#include "CMainDlg.h"
CMainDlg::CMainDlg() :CDialog(IDD_MAIN_DLG)
{
}
//初始化函数,虚函数,重写
BOOL CMainDlg::OnInitDialog()
{
//设置窗口标题
SetWindowText("我的第一个MFC");
//加载icon
//Win32 ,WM_SETICON
//凡是调用Windows API 前面加两个::
//方法一 AfxGetInstanceHandle获取全局句柄
//m_hIcon =::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(ID_MAIN_ICO));
//方法二
m_hIcon = ::LoadIcon(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(ID_MAIN_ICO));
//方法三
//m_hIcon = theApp.LoadIcon(ID_MAIN_ICO);
SetIcon(m_hIcon, TRUE);//设置大图标 按table 可以显示
SetIcon(m_hIcon, FALSE);//设置小图标
return TRUE;
}