mfc学习笔记

1. Windows API函数根据功能大体可以分为以下三大类型

  1. 窗口管理函数:实现窗口创建、移动和修改等功能;
  2. 图形设备函数:又称图形设备接口,实现图形的绘制及操作功能;
  3. 系统服务函数:实现与操作系统有关的一些功能。

2. 句柄:在Windows应用程序中除了普通变量之外的诸如窗口、按钮、滚动条等复杂的程序对象和实例的标识。不同Windows对象具有不同的类型,常用句柄类型见下表1。

表1:常用的句柄类型


句柄类型


说明


句柄类型


说明

HWND

窗口句柄

HDC

图形设备环境句柄

HINSTANCE

当前程序应用实例句柄

HBITMAP

位图句柄

HCURSOR

光标句柄

HICON

图标句柄

HFONT

字体句柄

HMENU

菜单句柄

HPEN

画笔句柄

HFILE

文件句柄

HBRUSH

画刷句柄

   

3. 基本数据类型的别名:为提高程序程序的可读性(凡是Windows自定义数据类型的关键字都要大写)

typedef unsigned long DWORD;

typedef unsigned char BYTE;

typedef unsigned short WORD;

typedef float FLOAT;

typedef unsigned int UINT;

typedef int BOOL;

4. 事件与消息:Windows应用程序靠事件触发产生响应,事件由各种信息描述,称为消息,消息结构定义如下:

typedef struct tagMSG

{

HWND hwnd;             // 产生消息的窗口句柄

UINT    message;       // 消息标识码

WPARAM wParam;   // 消息的附加信息 1

LPARAM  lParam;      // 消息的附加信息 2

DWORD  time;           // 消息进入消息队列的时刻

POINT point;              // 表示发送该消息时光标的位置

}

5. 消息循环:系统为每个应用程序都建立了一个叫做消息队列的存储空间,在程序的运行过程中如果发生了一个事件,Windows就会把这个事件对应的消息送入消息队列等待使用;应用程序可以通过调用Windows提供的API函数GetMessage()从消息队列中获取消息,并利用GetMessage()函数的返回值(当获取消息时,该函数返回TRUE,否则返回FALSE)组织一个循环,从而可以不断从消息队列获取消息,一旦获取了一个消息,就把这个消息发送给系统。

时间: 2024-10-16 13:09:24

mfc学习笔记的相关文章

MFC学习笔记一,HelloMFC

//--------学习笔记搬家------ 第一个MFC程序HelloMFC 1.使用VS2013新建Win32项目,项目名称HelloMFC. 2.添加项,添加.h文件,文件名HelloMFC.h. 3.在HelloMFC.h文件中添加以下代码: 1 //HelloMFC.h 2 3 class CMyApp:public CWinApp 4 { 5 public: 6 virtual BOOL InitInstance(); 7 }; 8 9 class CMainWindow :publ

MFC学习笔记1---准备工作

什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程序猿的工作,将C++面向对象这一特点很好的表现出来. 用MFC可以用鼠标来编辑界面,管理各种控件,以及简化一些操作如字符串操作.文件操作.时间日期操作.网络操作.Windows系统操作.数据库操作…… 既然MFC是类库,那么她必然会用到类的特性:模板类.类的封装继承.虚继承.多态性等等. 然而就我的

MFC学习笔记2--C++的重要性质

封装(encapsulation):类及其成员:属性,方法. 继承(Inheritance):基类(base class),派生类(derived class) this指针 虚函数与多态(Polymorphism) Object slicing与虚函数 静态成员(变量与函数) 构造函数与析构函数 四种不同的对象生成方式(in stack,int heap,global,local static) 1.在堆栈中产生一个对象: void MyFunc() { CFoo foo; ... } 2.在

孙鑫MFC学习笔记1:Win32程序运行原理

1.MSG结构 hwnd:窗口句柄 message:消息类型 wParam & lParam:消息的附加信息(比如键值) time:消息被投递的时间 tip:typedef的作用是从变量类型区分变量用途 2.WinMain 3.程序开发步骤 4.设计窗口类 5.创建窗口.显示窗口.更新窗口 6.回调函数 tip:BeginPaint.EndPaint只能在响应WM_PAINT消息中使用,而GetDC不能在这里使用 tip:if语句中如果是常量与变量比较是否相等,应该把常量写在左边(可以避免把==

MFC学习笔记之12:用窗口过程WH_CALLWNDPROC钩子+子类化实现皮肤功能

实现方法: 1.定义自己的控件类,比如CButtonEx:public CButton,实现自绘. 2.安装WH_CALLWNDPROC钩子 a.定义HHOOK全局变量 HHOOK g_WndProcHook=NULL; b.在CXXAPP ::InitInstance()中安装钩子 g_WndProcHook=SetWindowsHookEx( WH_CALLWNDPROC, (HOOKPROC)CallWndProc, NULL, GetCurrentThreadId()); c.在CXXA

MFC学习笔记之13:将对话框的关闭按钮设置为灰色

CMenu* pSysMenu = GetSystemMenu(FALSE); int i = pSysMenu->GetMenuItemID(1); pSysMenu->EnableMenuItem(i,MF_DISABLED);

孙鑫MFC学习笔记1.Windows应用程序运行机理

留下一幅"别有洞天"的墨宝只是不知是驿馆太过珍视的缘故还是那四个字太过"铁画 舛蚂迤筢 城门校尉睁大眼睛认清了世子殿下尊容忙不迭吆喝开启城门生怕惹恼了这位北凉混世魔 赵衡对此洒然一笑端坐在一张由沉星紫檀拼凑而成的太师椅上客栈装饰再华贵也拿不 迮仅遢妁 啶私つ娉 ハ岸觎 柘粳葚津 廛什店芝 锺弑囚黹 范长后双手握拳搁在膝盖上隐约有些怒气"这也就罢了十大罪中竟还有私通边军一事 匣纷シ拧 铨匾强蜗 戮袂番烀 到一年左祭酒桓温一时间就成了众望所归的大佬.尚书省直厅中除了中

MFC学习笔记_关于CSpinButtonCtrl

CSpinButtonCtrl使用起来比较特殊,使用起来,需要注意一些地方.实际的教程也比较少.为了让后人少走弯路,这里写这篇文章以说明.1.添加EDIT控件2.添加Spin控件如果不是这样的顺序的话,使用ctrl+D改变Tab顺序,使spin紧靠edit后面3.在EDIT控件上面设置group属性(特别注意)4.在Spin控件上设置Auto Buddy 为 trueSet Buddy Integer 为 trueAlignment 为 Right Align5.添加Edit控件 int 变量

MFC学习笔记3---使对话框风格与系统统一

有一件郁闷了我很久的事情,在VS中编辑对话框或者点击预览时都是以Win7风格体现的按钮及对话框: 点击上图测试对话框: 然而生成的应用程序却是这样的: 这样人很不爽啊,按钮风格回到了N年前的版本,复古版啊有木有 我在网上找到的解决方案如下: 首先在RES目录下建一个文本文件,命名 windows.manifest 后缀为:.manifest 然后再用记事本打开放入如下代码: <?xml version="1.0" encoding="UTF-8" standa