先来了解几个类
1、CObject类
有相当一部分类的基类是CObject类(比如CCmdTarget,CWnd,CFrameWnd)。它具有一些窗口类比较基础的功能:程序调试诊断信息输出通用功能,并且还对运行期对象类型识别、对象的动态创建、对象的序列化提供了相应的支持。
2、CCmdTarget类
MFC在这个类中封闭了窗口函数,因此,凡是希望具有处理windows消息的能力的类都必须以CCmdTarget类或其派生类为基类来派生。
给一个大概的示例:
class CCmdTarget
{
public:
int AfxWndProc(HWND, UINT,
WPARAM, LPARAM );
void On_LButtonDown(HWND, UINT,
WPARAM, LPARAM );
void On_Paint(HWND, UINT,
WPARAM, LPARAM );
void On_Destroy(HWND, UINT,
WPARAM, LPARAM );
};
int CCmdTarget::AfxWndProc(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_LBUTTONDOWN:
On_LButtonDown(hWnd, message, wParam, lParam);
break;
case WM_PAINT:
On_Paint(hWnd, message,wParam, lParam);
break;
case WM_DESTROY:
On_Destroy(hWnd, message, wParam, lParam);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
void CCmdTarget::On_LButtonDown(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
ShowText="Hello! Hello!";
InvalidateRect(hWnd,NULL,1);
}
void CCmdTarget::On_Paint(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint(hWnd, &ps);
TextOut(hdc,50,50,ShowText,14);
EndPaint(hWnd, &ps);
}
void CCmdTarget::On_Destroy(HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam)
{
PostQuitMessage(0);
}
//窗体类-----------------------------------------------------------------------------------------
class CFrameWnd:public CCmdTarget //这个窗体类是继承它的
{
public:
HWND hWnd;
int RegisterWindow();
void Create(LPCTSTR lpClassName,
LPCTSTR lpWindowName
);
void ShowWindow(int nCmdShow);
void UpdateWindow();
};
当然MFC中的原代码可能不是这样的,有兴趣可以自己去查查看
3、CWnd类
继承自CCmdTarget。Windows把应用程序窗口界面上的许多图形元素,如:控制栏、对话框、视图、属性页和控件等都当作是子窗口。这些都是继承自CWnd类。
4、CFrameWnd类
它是一个特殊的CWnd类,它或它的派生类对象要承担应用程序主窗口的任务,所以它除了CWnd类一些通用的功能外,还有一 些特殊功能 。
/////////////////////////////////////////////
以上四个类从上到下构成了一个继承图。
///////////////////////////////////////////////
5、CWinApp类
MFC希望把主函数封装成一个类,于是本类就诞生了。这个类区别于上面CWnd和CFrameWnd类,该类主要是用来实现WinMain功能的,在它里面实例化了CFrameWnd类,用它来创建窗口。该类继承自CWindThread,线程类,如下图所示,之所以要在CCmdTarget和CWndApp中间插入这个类主要是为了支持Windows多线程工作方式,该类中封装了一些用于线程管理的功能函数。
值得程序员注意的是,MFC把原来在CWinApp类中定义的CWnd*类型的数据成员m_pMainWnd定义在CWinThread中,所以在CWinApp中看不到这个成员。
CWinApp类中有三个可以重写的虚成员函数:InitApplication( ), InitInstance( )和Run( )。其中InitInstance( )是程序创建窗口和显示窗口所设置的。
下文将给出MFC的一些较简单的实例。。。
- 大小: 19.3 KB
分享到:
相关推荐
MFC学习笔记(onenote格式),一个朋友参加MFC培训,其教师在讲课过程中做的学习日记。图文并茂,是初学者很好的学习资料。
**MFC 学习笔记** MFC(Microsoft Foundation Classes)是微软开发的一种C++类库,用于构建Windows应用程序。它提供了面向对象的编程接口,使得开发者可以更容易地使用Windows API。MFC的主要目标是简化Windows应用...
MFC本身也是基于Windows API构建的,因此理解Windows API对于深入学习MFC至关重要。 ### 内存管理 C++中的内存管理是一个关键且复杂的话题。`new`和`delete`是C++中用于动态分配和释放内存的关键字。`new`操作符...
MFC 菜单操作学习笔记 本文是关于 MFC 菜单操作学习笔记 的资源,旨在帮助开发者学习和掌握 MFC 菜单操作的技术。下面是对该资源的详细解释和知识点总结。 一、创建菜单 MFC 菜单操作学习笔记 中提供了两种创建...
《MFC学习笔记:腾讯游戏连连看外挂制作(一)》 在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC) 来开发腾讯游戏连连看的外挂程序。MFC是微软提供的一套C++库,用于简化Windows应用程序的开发...
在C++编程中,MFC(Microsoft ...以上是C++和MFC学习笔记中涉及的关键知识点,涵盖了窗口、绘图、异常处理、消息循环、对话框以及资源管理等多个方面。理解并熟练运用这些概念对于深入掌握C++和MFC编程至关重要。
本篇笔记主要涵盖了MFC中的一些基本功能和常用函数,适合初学者入门学习。 首先,我们来看看如何在MFC中使用消息框。`MessageBeep((WORD)-1)`函数可以发出PC的提示音,提醒用户有事件发生。而`MessageBox`函数则是...
### 深入浅出MFC学习笔记:关键知识点解析 #### 一、Windows消息机制与回调函数 在深入探讨MFC之前,我们先来理解Windows操作系统中的消息机制及其核心组成部分——回调函数。 ##### 1.1 Windows消息机制概述 ...
本人从零开始学C++/MFC的时候,积累和整理的学习笔记,其中有大部分常见问题和处理办法,看过很过帖子,也查过很多资料,最终把他们记录下来。 Demo内容: ★ ::OnTimer OnTimer()函数用于实现定时控制功能,定时...
在本篇MFC学习笔记中,我们将深入探讨如何使用MFC AppWizard创建不同类型的项目,以及这些项目中的关键类和文件。 首先,我们来看MFC AppWizard如何生成应用程序。AppWizard是MFC提供的一个向导工具,可以根据选择...
【MFC学习笔记1】 MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于简化Windows应用程序的开发。本笔记将重点介绍基于对话框的MFC应用程序开发。 7.16 基于对话框编程 对话框在Windows程序中扮演...
《Visual C++ MFC 学习笔记》 学习Visual C++ MFC,首先需要具备扎实的C/C++基础知识。这是入门VC开发的基石,因为MFC(Microsoft Foundation Classes)是基于C++的一个类库,对C++的掌握程度直接影响到理解和使用...
**MFC学习笔记——销售系统案例详解** MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于构建Windows应用程序。它基于面向对象的编程思想,为开发者提供了丰富的功能,简化了Win32 API的使用。在...
在学习MFC时,你需要了解以下几个核心概念和知识点: 1. **基本概念**:MFC是由一系列C++类组成的库,这些类封装了Windows API的功能。它提供了窗口、控件、文档/视图架构、消息映射、数据库访问等组件,帮助开发者...
《Visual C++/MFC学习笔记》是一份深入探讨C++和Microsoft Foundation Class (MFC)库的文档,旨在帮助读者掌握使用Visual C++开发Windows应用程序的技能。这份笔记主要分为六个章节,覆盖了从入门到高级的多个主题。...
《深入探索MFC与Windows32编程》 MFC(Microsoft Foundation Classes)是微软提供的一套C++类库,用于简化Windows应用程序开发。...通过深入学习这两方面的知识,开发者可以构建出功能丰富、性能优异的应用程序。
深入浅出MFC读书笔记2是对MFC框架的进一步学习和理解,主要涵盖了MFC的基础概念、类库结构以及程序构建的关键要素。MFC(Microsoft Foundation Classes)是微软为Windows平台开发的应用程序提供的一种类库,它基于...
MFC(Microsoft Foundation...总之,MFC学习代码和笔记对于希望深入理解和掌握Windows桌面应用程序开发的程序员来说,是一份不可多得的学习材料。通过学习和实践,可以提升编程技能,更好地驾驭MFC这一强大的开发工具。