`
lingyibin
  • 浏览: 196367 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

MFC学习笔记(一)

阅读更多

之前也学过一点MFC的知识,但因很久没去碰就都忘 得差不多了。于是我想再从头开始,系统的再学一遍,并同步这个学习笔记。与大家共享,共同学习MFC。学习教材主要是清华大学出版的《MFC Windows 应用程序设计(第二版)》。当然也会参考一些其它的资料……

该书的目录如下:

 

第1章 Windows应用程序基础知识 
 1.1 Windows应用程序的基本概念
 1.2 Windows应用程序的结构
 1.3 用函数封装Windows程序
 1.4 窗口函数的另一种结构
 小结
 练习题
 思考题
第2章 Windows应用程序的类封装
 2.1 应用程序主函数的C++类封装
 2.2 派生类的应用
 2.3 窗口函数的封装--消息映射
 小结
 练习题
 思考题
第3章 MFC应用程序框架
 3.1 早期的应用程序框架及其MFC类
 3.2 最简单的MFC程序实例
 3.3 应用程序的文档/视图结构
 3.4 文档类CDocument的派生类
 3.5 视图类CView的派生类
 3.6 窗口框架类CFrameWnd的派生类
 3.7 文档模板类CDocTemplate 
 3.8 应用程序类的派生类
 3.9 MFC文档/视图应用程序框架中各个对象的关系
 3.10 对象的动态创建
 小结
 练习题
 思考题
第4章 图形
第5章 MFC的通用类
第6章 Windows应用程序界面的设计
第7章 鼠标和键盘
第8章 资源
第9章 MFC的文件处理机制
第10章 控件
第11章 对话框
第12章 进程与线程的管理
第13章 动态链接库及其使用
第14章 组件对象模型基础
第15章 ActiveX应用基础
第16章 用MFC设计数据库应用程序
第17章 异常和异常处理
附录A 数据类型与Windows句柄
附录B 标识符的匈牙利记法
附录C MFC的消息映射
附录D 文档/视图框架的补充内容
附录E 多文档/视图框架的一个实例
附录F 类信息表与CObject类
附录G Visual C++中文件类型小结
参考文献
第1章 Windows应用程序基础知识 
 1.1 Windows应用程序的基本概念
 1.2 Windows应用程序的结构
 1.3 用函数封装Windows程序
 1.4 窗口函数的另一种结构
 小结
 练习题
 思考题
第2章 Windows应用程序的类封装
 2.1 应用程序主函数的C++类封装
 2.2 派生类的应用
 2.3 窗口函数的封装--消息映射
 小结
 练习题
 思考题
第3章 MFC应用程序框架
 3.1 早期的应用程序框架及其MFC类
 3.2 最简单的MFC程序实例
 3.3 应用程序的文档/视图结构
 3.4 文档类CDocument的派生类
 3.5 视图类CView的派生类
 3.6 窗口框架类CFrameWnd的派生类
 3.7 文档模板类CDocTemplate 
 3.8 应用程序类的派生类
 3.9 MFC文档/视图应用程序框架中各个对象的关系
 3.10 对象的动态创建
 小结
 练习题
 思考题
第4章 图形
第5章 MFC的通用类
第6章 Windows应用程序界面的设计
第7章 鼠标和键盘
第8章 资源
第9章 MFC的文件处理机制
第10章 控件
第11章 对话框
第12章 进程与线程的管理
第13章 动态链接库及其使用
第14章 组件对象模型基础
第15章 ActiveX应用基础
第16章 用MFC设计数据库应用程序
第17章 异常和异常处理
附录A 数据类型与Windows句柄
附录B 标识符的匈牙利记法
附录C MFC的消息映射
附录D 文档/视图框架的补充内容
附录E 多文档/视图框架的一个实例
附录F 类信息表与CObject类
附录G Visual C++中文件类型小结
参考文献

 在此列出,仅做参考。

 

本文是个开头篇,因此从最简单的Windows程序设计说起。每个笔记都是代码占主要部分。。其中的细节大都以注释的方式给出。

 

#include<windows.h>
//声明窗口函数原型
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//-------------------------------------------------------------------
//主函数,程序的入口
int WINAPI WinMain(HINSTANCE hInstance, //当前应用程序实例的句柄
				   HINSTANCE PreInstance, //前一个应用程序实例句柄
				   LPSTR lpCmdLine, //指向本程序命令行的指针
				   int nCmdShow) //决定应用程序窗口显示方式的标志,下面会讲
{
	HWND hwnd; //窗口句柄,用来把持整个窗口
	MSG  msg; //窗口消息
	char lpszClassName[]="窗口"; //窗口类型名,给下面的用,可以直接写在下面
	WNDCLASS wc; //窗口名,注册这个窗口时用到
	wc.style=0; //窗口样式,一般设置为0
	wc.lpfnWndProc=WndProc; //指向窗口函数的指针
	wc.cbClsExtra=0; //一般设为0
	wc.cbWndExtra=0; //一般设为0
	wc.hInstance=hInstance; //定义窗口应用程序的实例句柄
	wc.hIcon=LoadIcon(NULL,IDI_APPLICATION); //加载窗口的图标
	wc.hCursor=LoadCursor(NULL,IDC_ARROW);  //加载光标
	wc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //设置窗口背景颜色
	wc.lpszMenuName=NULL; //窗口的菜单资源名
	wc.lpszClassName=lpszClassName; //窗口类型名

	RegisterClass(&wc); //注册这个窗口
//创建窗口
	hwnd=CreateWindow(	lpszClassName, //窗口类型名
						"Windows", //窗口实例标题
						WS_OVERLAPPEDWINDOW, //窗口风格
						120,50,800,600, //窗口左上x值,左上y值,宽度和高度
						NULL, //父窗口的句柄
						NULL, //主菜单的句柄
						hInstance, //应用程序实例句柄
						NULL); //无参数,设为NULL

	ShowWindow(hwnd,nCmdShow); //显示窗口
	UpdateWindow(hwnd); //更新窗口
//用一个死循环来等待并读取消息。当读不到时,GetMessage函数不会返回。
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg); //解析讲到的事件消息
		DispatchMessage(&msg); //分发事件消息,由下面的WndProc函数处理
	}
	return msg.wParam;
}

//------------------------------------------------------------------
//处理消息的窗口函数
LRESULT CALLBACK WndProc(HWND hwnd,
						 UINT message,
						 WPARAM wParam,
						 LPARAM lParam)
{
	switch(message)
	{
	case WM_LBUTTONDOWN:
		{
			MessageBeep(0); //按下左键时就beep一声
		}
		break;
	case WM_DESTROY:
		PostQuitMessage(0); //当上面的while循环遇到这个消息时就会中止,因为它让GetMessage返回0
		break;
	default:
		return DefWindowProc(hwnd,message,wParam,lParam); //其它的事件交给默认的窗口过程来处理
	}
	return 0;
}

得到了最简单的一个窗口 ,如下图:


WinMain里面的第四个参数在MSDN里面有如下说明:


写Win32窗口程序时,上面这段代码可以直接拷过去用,之后再在这基础上做些增加、修改就是一个新的窗口应用程序了。

 

 

分享到:
评论

相关推荐

    MFC学习笔记总结(onenote格式)

    MFC学习笔记(onenote格式),一个朋友参加MFC培训,其教师在讲课过程中做的学习日记。图文并茂,是初学者很好的学习资料。

    MFC笔记 MFC笔记 MFC笔记 MFC笔记 MFC笔记 MFC笔记

    MFC本身也是基于Windows API构建的,因此理解Windows API对于深入学习MFC至关重要。 ### 内存管理 C++中的内存管理是一个关键且复杂的话题。`new`和`delete`是C++中用于动态分配和释放内存的关键字。`new`操作符...

    MFC学习笔记

    **MFC 学习笔记** MFC(Microsoft Foundation Classes)是微软开发的一种C++类库,用于构建Windows应用程序。它提供了面向对象的编程接口,使得开发者可以更容易地使用Windows API。MFC的主要目标是简化Windows应用...

    MFC菜单操作学习笔记

    MFC 菜单操作学习笔记 本文是关于 MFC 菜单操作学习笔记 的资源,旨在帮助开发者学习和掌握 MFC 菜单操作的技术。下面是对该资源的详细解释和知识点总结。 一、创建菜单 MFC 菜单操作学习笔记 中提供了两种创建...

    MFC学习笔记\MFC学习笔记整理:002_腾讯游戏连连看外挂制作(一)

    《MFC学习笔记:腾讯游戏连连看外挂制作(一)》 在本文中,我们将深入探讨如何使用Microsoft Foundation Classes (MFC) 来开发腾讯游戏连连看的外挂程序。MFC是微软提供的一套C++库,用于简化Windows应用程序的开发...

    C++、MFC学习笔记

    在C++编程中,MFC(Microsoft ...以上是C++和MFC学习笔记中涉及的关键知识点,涵盖了窗口、绘图、异常处理、消息循环、对话框以及资源管理等多个方面。理解并熟练运用这些概念对于深入掌握C++和MFC编程至关重要。

    MFC学习笔记(个人总结)

    总的来说,这些笔记覆盖了MFC基础的用户交互、数据管理、窗口更新、定时操作和DLL管理等方面,对于初学者来说是一份很好的学习资源。通过理解和实践这些函数,开发者可以更好地掌握MFC编程,并进一步构建复杂的...

    深入浅出MFC学习笔记

    ### 深入浅出MFC学习笔记:关键知识点解析 #### 一、Windows消息机制与回调函数 在深入探讨MFC之前,我们先来理解Windows操作系统中的消息机制及其核心组成部分——回调函数。 ##### 1.1 Windows消息机制概述 ...

    MFC学习笔记2.0.pdf - MFC学习过程中的问题和疑难点总结

    本人从零开始学C++/MFC的时候,积累和整理的学习笔记,其中有大部分常见问题和处理办法,看过很过帖子,也查过很多资料,最终把他们记录下来。 Demo内容: ★ ::OnTimer OnTimer()函数用于实现定时控制功能,定时...

    MFC学习笔记.docx

    在本篇MFC学习笔记中,我们将深入探讨如何使用MFC AppWizard创建不同类型的项目,以及这些项目中的关键类和文件。 首先,我们来看MFC AppWizard如何生成应用程序。AppWizard是MFC提供的一个向导工具,可以根据选择...

    MFC学习笔记1

    【MFC学习笔记1】 MFC(Microsoft Foundation Classes)是微软提供的一套C++库,用于简化Windows应用程序的开发。本笔记将重点介绍基于对话框的MFC应用程序开发。 7.16 基于对话框编程 对话框在Windows程序中扮演...

    Visual_C++MFC学习笔记0

    《Visual C++ MFC 学习笔记》 学习Visual C++ MFC,首先需要具备扎实的C/C++基础知识。这是入门VC开发的基石,因为MFC(Microsoft Foundation Classes)是基于C++的一个类库,对C++的掌握程度直接影响到理解和使用...

    MFC学习笔记--案例--销售系统

    在这个“MFC学习笔记——销售系统”案例中,我们将探讨如何利用MFC来开发一个简单的销售管理系统。 首先,`juiceSale.sln`文件是Visual Studio的解决方案文件,包含了项目的所有配置和依赖项。通过打开这个文件,...

    达内MFC课程完整笔记

    MFC,全称为Microsoft Foundation Classes,是微软提供的...在学习过程中,你将学会如何创建一个完整的MFC应用程序,包括从创建项目、设计用户界面、处理消息到实现功能模块,从而具备独立开发Windows桌面应用的能力。

    Visual C++/MFC学习笔记.doc

    《Visual C++/MFC学习笔记》是一份深入探讨C++和Microsoft Foundation Class (MFC)库的文档,旨在帮助读者掌握使用Visual C++开发Windows应用程序的技能。这份笔记主要分为六个章节,覆盖了从入门到高级的多个主题。...

    MFC学习笔记加windows32

    一、MFC基础 1. MFC架构:MFC由几个关键部分组成,包括框架类、文档/视图结构、对话框、控件、GDI(图形设备接口)以及ATL(Active Template Library)等。其中,框架类如CWinApp、CDocument、CView等,提供了应用...

    深入浅出MFC读书笔记2

    深入浅出MFC读书笔记2是对MFC框架的进一步学习和理解,主要涵盖了MFC的基础概念、类库结构以及程序构建的关键要素。MFC(Microsoft Foundation Classes)是微软为Windows平台开发的应用程序提供的一种类库,它基于...

    MFC学习代码及笔记

    MFC(Microsoft Foundation...总之,MFC学习代码和笔记对于希望深入理解和掌握Windows桌面应用程序开发的程序员来说,是一份不可多得的学习材料。通过学习和实践,可以提升编程技能,更好地驾驭MFC这一强大的开发工具。

Global site tag (gtag.js) - Google Analytics