MFC:微软基础类库,以C++形式封装了WindowsAPI,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。

     其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类

MFC把Windows SDK API函数包装成了几百个类,给WIndows操作系统提供了面向对象的接口,支持可重用性、自包含性以及其他OPP原则。

头文件

#pragma once
#include <afxwin.h> //导入mfc头文件 class MyApp :public CWinApp //CWinApp应用程序类
{
public:
//程序入口
virtual BOOL InitInstance(); }; class MyFrame:public CFrameWnd //窗口类框架
{
public:
MyFrame();
};

源文件

#include "mfc.h"

MyApp app;  //全局应用程序对象,有且仅有一个

BOOL MyApp::InitInstance() {
//创建窗口
MyFrame *frame = new MyFrame;
frame->ShowWindow(SW_SHOWNORMAL);
frame->UpdateWindow(); m_pMainWnd = frame; //m_pMainWnd 保存指向应用程序的主窗口的指针
return TRUE;
} MyFrame::MyFrame() {
Create(NULL,TEXT("Windows窗体"));
}

注意:对项目进行配置,配置为在共享DLL中使用

MFC消息映射机制:

消息映射是一个将消息和成员函数相互关联的表。比如,框架窗口接收到一个鼠标左击消息,MFC将搜索该窗口的消息映射,如果存在一个处理WM_LBUTTONDOWN消息的处理程序,然后就调用OnLButtonDown。

消息映射机制:   需要先声明宏  在.h文件中声明

          需要分界宏     在.cpp中实现

          将消息宏  写到 分界宏 中间      在手册上去找消息对应的消息宏

          声明函数原型   在.h 中

          实现函数   如 鼠标消息,键盘,绘图等

// 1.声明消息映射机制需要的宏   .h
DECLARE_MESSAGE_MAP();//声明宏 提供消息映射机制 //2. 在.cpp中 实现 分界宏 用来映射对应的消息
BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd)
ON_WM_LBUTTONDOWN() //鼠标左键按下
//ON_WM_KEYDOWN() //键盘按下
ON_WM_CHAR() //键盘字符 按键按下 到松开
ON_WM_PAINT() //绘图
END_MESSAGE_MAP() //3.声明函数
afx_msg void OnLButtonDown(UINT, CPoint); //鼠标按下消息声明
afx_msg void OnKeyDown(UINT, UINT, UINT); //键盘按下消息声明
afx_msg void OnChar(UINT, UINT, UINT);
afx_msg void OnPaint(); //绘图消息声明 //4. 实现函数
void MyFrame::OnLButtonDown(UINT, CPoint point)
{
TCHAR buf[1024];
wsprintf(buf, TEXT("x = %d,y = %d"), point.x, point.y); //MFC的字符串 CString MessageBox(buf);
} void MyFrame::OnKeyDown(UINT, UINT, UINT)
{
MessageBox(TEXT("按下键盘"));
} void MyFrame::OnChar(UINT nchar, UINT, UINT)
{
CString str;
str.Format(TEXT("按下了%c键"), nchar);
MessageBox(str);
}

最新文章

  1. JQuery 滚动条插件perfect-scrollbar
  2. QT QTableView用法小结
  3. css-使用line-height实现垂直居中的一些问题
  4. 使用连接来代替in和not in(使用外连接技巧)
  5. Git PHP提交
  6. 提高iOS开发效率的方法和工具
  7. UVALIVE 4970 最小权匹配
  8. Mybaits入门之起航
  9. httpcomponents-client-ga(4.5)
  10. jenkins - jsp或其他web样式无法展示
  11. winPcap编程之获取适配器信息(二)
  12. 自制按钮图标的两种方法: image sprite和svg字体文件
  13. 合并回文子串(区间dp)
  14. 学习Android过程中遇到的未解决问题(个人笔记,细节补充,随时更新)
  15. file图片上传之前先预览
  16. 微信小程序---setData
  17. Tests for Variances
  18. bzoj 1060
  19. 这些git命令判断提交到哪个分支哪个项目上
  20. (转)java并发编程--Executor框架

热门文章

  1. c语言基础理解(原创)
  2. IDEA 2022.1.3 配置 Tomcat 模板
  3. day09-AOP-02
  4. 今天学到的新知识--使用localtunnel实现内网穿透,感觉很神奇哇~~
  5. Odoo View 常用技巧
  6. 如何在es中查询null值
  7. UICC Send USSD 加密信息解析
  8. 洛谷p2669
  9. JavaScript: symbol 和 string key 取值用法
  10. WPF 使用动画绘制一个点赞大拇指