MFC把消息主要分为三大类:

1. 标准Windows消息(WM_XXX)

2. 命令消息(WM_COMMAND):凡由UI对象产生的消息都是这种命令消息,可能来自菜单或加速键或工具栏按钮。

3. 控件Notification消息

下面是各种消息的消息映射及对应处理函数原型:

WM_COMMAND消息与处理对应规则:

消息映射

对应处理函数原型

ON_COMMAND(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_COMMAND_EX(<id>, <memberFxn>)

afx_msg BOOL memberFxn(UINT);

ON_COMMAND_EX_RANGE(<id>, <idLast>, <memberFxn>)

afx_msg BOOL memberFxn(UINT);

ON_COMMAND_RANGE(<id>, <idLast>, <memberFxn>)

afx_msg void memberFxn(UINT);

ON_UPDATE_COMMAND_UI(<id>, <memberFxn>)

afx_msg void memberFxn(CCmdUI*);

ON_UPDATE_COMMAND_UI_RANGE (<id>, <idLast>, <memberFxn>)

afx_msg void memberFxn(CCmdUI*);

ON_UPDATE_COMMAND_UI_REFLECT (<memberFxn>)

afx_msg void memberFxn(CCmdUI*);

子窗口控件"Notification消息"消息与处理对应规则:

Generic ControlNotification Codes

消息映射

对应处理函数原型

ON_CONTROL(<wNotifyCode>, <id>, <memberFxn>)

afx_msg void memberFxn();

ON_CONTROL_RANGE(<wNotifyCode>, <id> <idLast>, <memberFxn>)

afx_msg void memberFxn(UINT);

ON_CONTROL_REFLECT(<wNotifyCode>, <memberFxn>)

afx_msg void memberFxn();

ON_CONTROL_REFLECT_EX(<wNotifyCode>, <memberFxn>)

afx_msg BOOL memberFxn();

ON_NOTIFY(<wNotifyCode>, <id>, <memberFxn>)

afx_msg void memberFxn(NMHDR*, LRESULT*);

ON_NOTIFY_EX(<wNotifyCode>, <id>, <memberFxn>)

afx_msg BOOL memberFxn(UINT, NMHDR*, LRESULT*);

ON_NOTIFY_EX_RANGE(<wNotifyCode>, <id>, <idLast>, <memberFxn>)

afx_msg BOOL memberFxn(UINT, NMHDR*, LRESULT*);

ON_NOTIFY_RANGE(<wNotifyCode>, <id>, <idLast>, <memberFxn>)

afx_msg void memberFxn(UINT, NMHDR*, LRESULT*);

ON_NOTIFY_REFLECT(<wNotifyCode>, <memberFxn>)

afx_msg void memberFxn(NMHDR*, LRESULT*);

ON_NOTIFY_REFLECT_EX(<wNotifyCode>, <memberFxn>)

afx_msg BOOL memberFxn(NMHDR*, LRESULT*);

User ButtonNotification Codes

消息映射

对应处理函数原型

ON_BN_CLICKED(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_BN_DOUBLECLICKED(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_BN_KILLFOCUS(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_BN_SETFOCUS(<id>, <memberFxn>)

afx_msg void memberFxn();

Combo Box NotificationCodes

消息映射

对应处理函数原型

ON_CBN_CLOSEUP(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_DBLCLK(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_DROPDOWN(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_EDITCHANGE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_EDITUPDATE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_ERRSPACE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_KILLFOCUS(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_SELCHANGE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_SELENDCANCEL(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_SELENDOK(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_CBN_SETFOCUS(<id>, <memberFxn>)

afx_msg void memberFxn();

Check List BoxNotification Codes

消息映射

对应处理函数原型

ON_CLBN_CHKCHANGE(<id>, <memberFxn>)

afx_msg void memberFxn();

Edit ControlNotification Codes

消息映射

对应处理函数原型

ON_EN_CHANGE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_EN_ERRSPACE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_EN_HSCROLL(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_EN_KILLFOCUS(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_EN_MAXTEXT(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_EN_SETFOCUS(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_EN_UPDATE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_EN_VSCROLL(<id>, <memberFxn>)

afx_msg void memberFxn();

List Box NotificationCodes

消息映射

对应处理函数原型

ON_LBN_DBLCLK(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_LBN_ERRSPACE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_LBN_KILLFOCUS(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_LBN_SELCANCEL(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_LBN_SELCHANGE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_LBN_SETFOCUS(<id>, <memberFxn>)

afx_msg void memberFxn();

Static Control Notification Codes

消息映射

对应处理函数原型

ON_STN_CLICKED(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_STN_DBLCLK(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_STN_DISABLE(<id>, <memberFxn>)

afx_msg void memberFxn();

ON_STN_ENABLE(<id>, <memberFxn>)

afx_msg void memberFxn();

标准Windows消息( WM_xxx )的对应规则:

消息映射

对应处理函数原型

ON_WM_ACTIVATE()

afx_msg void OnActivate(UINT, CWnd*, BOOL);

ON_WM_ACTIVATEAPP()

afx_msg void OnActivateApp(BOOL, HTASK);

ON_WM_ASKCBFORMATNAME()

afx_msg void OnAskCbFormatName(UINT, LPTSTR);

ON_WM_CANCELMODE()

afx_msg void OnCancelMode();

ON_WM_CAPTURECHANGED()

afx_msg void OnCaptureChanged(CWnd*);

ON_WM_CHANGECBCHAIN()

afx_msg void OnChangeCbChain(HWND, HWND);

ON_WM_CHAR()

afx_msg void OnChar(UINT, UINT, UINT);

ON_WM_CHARTOITEM()

afx_msg int OnCharToItem(UINT, CListBox*, UINT);

ON_WM_CHARTOITEM_REFLECT()

afx_msg int CharToItem(UINT, UINT);

ON_WM_CHILDACTIVATE()

afx_msg void OnChildActivate();

ON_WM_CLOSE()

afx_msg void OnClose();

ON_WM_COMPACTING()

afx_msg void OnCompacting(UINT);

ON_WM_COMPAREITEM()

afx_msg int OnCompareItem(int, LPCOMPAREITEMSTRUCT);

ON_WM_COMPAREITEM_REFLECT()

afx_msg int CompareItem (LPCOMPAREITEMSTRUCT);

ON_WM_CONTEXTMENU()

afx_msg void OnContextMenu(CWnd*, CPoint);

ON_WM_COPYDATA()

afx_msg BOOL OnCopyData(CWnd*, COPYDATASTRUCT*);

ON_WM_CREATE()

afx_msg int OnCreate(LPCREATESTRUCT);

ON_WM_CTLCOLOR()

afx_msg HBRUSH OnCtlColor(CDC*, CWnd*, UINT);

ON_WM_CTLCOLOR_REFLECT()

afx_msg HBRUSH CtlColor(CDC*, UINT);

ON_WM_DEADCHAR()

afx_msg void OnDeadChar(UINT, UINT, UINT);

ON_WM_DELETEITEM()

afx_msg void OnDeleteItem(int, LPDELETEITEMSTRUCT);

ON_WM_DELETEITEM_REFLECT()

afx_msg void DeleteItem (LPDELETEITEMSTRUCT)

ON_WM_DESTROY()

afx_msg void OnDestroy();

ON_WM_DESTROYCLIPBOARD()

afx_msg void OnDestroyClipboard();

ON_WM_DEVICECHANGE()

afx_msg BOOL OnDeviceChange(UINT, DWORD);

ON_WM_DEVMODECHANGE()

afx_msg void OnDevModeChange(LPTSTR);

ON_WM_DRAWCLIPBOARD()

afx_msg void OnDrawClipboard();

ON_WM_DRAWITEM()

afx_msg void OnDrawItem(int, LPDRAWITEMSTRUCT);

ON_WM_DRAWITEM_REFLECT()

afx_msg void DrawItem (LPDRAWITEMSTRUCT);

ON_WM_DROPFILES()

afx_msg void OnDropFiles(HDROP);

ON_WM_ENABLE()

afx_msg void OnEnable(BOOL);

ON_WM_ENDSESSION()

afx_msg void OnEndSession(BOOL);

ON_WM_ENTERIDLE()

afx_msg void OnEnterIdle(UINT, CWnd*);

ON_WM_ENTERMENULOOP()

afx_msg void OnEnterMenuLoop(BOOL);

ON_WM_ERASEBKGND()

afx_msg BOOL OnEraseBkgnd(CDC*);

ON_WM_EXITMENULOOP()

afx_msg void OnExitMenuLoop(BOOL);

ON_WM_FONTCHANGE()

afx_msg void OnFontChange();

ON_WM_GETDLGCODE()

afx_msg UINT OnGetDlgCode();

ON_WM_GETMINMAXINFO()

afx_msg void OnGetMinMaxInfo (MINMAXINFO*);

ON_WM_HELPINFO()

afx_msg BOOL OnHelpInfo(HELPINFO*);

ON_WM_HSCROLL()

afx_msg void OnHScroll(UINT, UINT, CScrollBar*);

ON_WM_HSCROLL_REFLECT()

afx_msg void HScroll(UINT, UINT);

ON_WM_HSCROLLCLIPBOARD()

afx_msg void OnHScrollClipboard(CWnd*, UINT, UINT);

ON_WM_ICONERASEBKGND()

afx_msg void OnIconEraseBkgnd(CDC*);

ON_WM_INITMENU()

afx_msg void OnInitMenu(CMenu*);

ON_WM_INITMENUPOPUP()

afx_msg void OnInitMenuPopup(CMenu*, UINT, BOOL);

ON_WM_KEYDOWN()

afx_msg void OnKeyDown(UINT, UINT, UINT);

ON_WM_KEYUP()

afx_msg void OnKeyUp(UINT, UINT, UINT);

ON_WM_KILLFOCUS()

afx_msg void OnKillFocus(CWnd*);

ON_WM_LBUTTONDBLCLK()

afx_msg void OnLButtonDblClk(UINT, CPoint);

ON_WM_LBUTTONDOWN()

afx_msg void OnLButtonDown(UINT, CPoint);

ON_WM_LBUTTONUP()

afx_msg void OnLButtonUp(UINT, CPoint);

ON_WM_MBUTTONDBLCLK()

afx_msg void OnMButtonDblClk(UINT, CPoint);

ON_WM_MBUTTONDOWN()

afx_msg void OnMButtonDown(UINT, CPoint);

ON_WM_MBUTTONUP()

afx_msg void OnMButtonUp(UINT, CPoint);

ON_WM_MDIACTIVATE()

afx_msg void OnMDIActivate(BOOL, CWnd*, CWnd*);

ON_WM_MEASUREITEM()

afx_msg void OnMeasureItem(int, LPMEASUREITEMSTRUCT);

ON_WM_MEASUREITEM_REFLECT()

afx_msg void MeasureItem (LPMEASUREITEMSTRUCT);

ON_WM_MENUCHAR()

afx_msg LRESULT OnMenuChar(UINT, UINT, CMenu*);

ON_WM_MENUSELECT()

afx_msg void OnMenuSelect(UINT, UINT, HMENU);

ON_WM_MOUSEACTIVATE()

afx_msg int OnMouseActivate(CWnd*, UINT, UINT);

ON_WM_MOUSEMOVE()

afx_msg void OnMouseMove(UINT, CPoint);

ON_WM_MOUSEWHEEL()

afx_msg BOOL OnMouseWheel(UINT, short, CPoint);

ON_WM_MOVE()

afx_msg void OnMove(int, int);

ON_WM_MOVING()

afx_msg void OnMoving(UINT, LPRECT);

ON_WM_NCACTIVATE()

afx_msg BOOL OnNcActivate(BOOL);

ON_WM_NCCALCSIZE()

afx_msg void OnNcCalcSize(BOOL, NCCALCSIZE_PARAMS*);

ON_WM_NCCREATE()

afx_msg BOOL OnNcCreate (LPCREATESTRUCT);

ON_WM_NCDESTROY()

afx_msg void OnNcDestroy();

ON_WM_NCHITTEST()

afx_msg UINT OnNcHitTest(CPoint);

ON_WM_NCLBUTTONDBLCLK()

afx_msg void OnNcLButtonDblClk(UINT, CPoint);

ON_WM_NCLBUTTONDOWN()

afx_msg void OnNcLButtonDown(UINT, CPoint);

ON_WM_NCLBUTTONUP()

afx_msg void OnNcLButtonUp(UINT, CPoint);

ON_WM_NCMBUTTONDBLCLK()

afx_msg void OnNcMButtonDblClk(UINT, CPoint);

ON_WM_NCMBUTTONDOWN()

afx_msg void OnNcMButtonDown(UINT, CPoint);

ON_WM_NCMBUTTONUP()

afx_msg void OnNcMButtonUp(UINT, CPoint);

ON_WM_NCMOUSEMOVE()

afx_msg void OnNcMouseMove(UINT, CPoint);

ON_WM_NCPAINT()

afx_msg void OnNcPaint();

ON_WM_NCRBUTTONDBLCLK()

afx_msg void OnNcRButtonDblClk(UINT, CPoint);

ON_WM_NCRBUTTONDOWN()

afx_msg void OnNcRButtonDown(UINT, CPoint);

ON_WM_NCRBUTTONUP()

afx_msg void OnNcRButtonUp(UINT, CPoint);

ON_WM_PAINT()

afx_msg void OnPaint();

ON_WM_PAINTCLIPBOARD()

afx_msg void OnPaintClipboard(CWnd*, HGLOBAL);

ON_WM_PALETTECHANGED()

afx_msg void OnPaletteChanged(CWnd*);

ON_WM_PALETTEISCHANGING()

afx_msg void OnPaletteIsChanging(CWnd*);

ON_WM_PARENTNOTIFY()

afx_msg void OnParentNotify(UINT, LPARAM);

ON_WM_PARENTNOTIFY_REFLECT()

afx_msg void ParentNotify(UINT, LPARAM);

ON_WM_QUERYDRAGICON()

afx_msg HCURSOR OnQueryDragIcon();

ON_WM_QUERYENDSESSION()

afx_msg BOOL OnQueryEndSession();

ON_WM_QUERYNEWPALETTE()

afx_msg BOOL OnQueryNewPalette();

ON_WM_QUERYOPEN()

afx_msg BOOL OnQueryOpen();

ON_WM_RBUTTONDBLCLK()

afx_msg void OnRButtonDblClk(UINT, CPoint);

ON_WM_RBUTTONDOWN()

afx_msg void OnRButtonDown(UINT, CPoint);

ON_WM_RBUTTONUP()

afx_msg void OnRButtonUp(UINT, CPoint);

ON_WM_RENDERALLFORMATS()

afx_msg void OnRenderAllFormats();

ON_WM_RENDERFORMAT()

afx_msg void OnRenderFormat(UINT);

ON_WM_SETCURSOR()

afx_msg BOOL OnSetCursor(CWnd*, UINT, UINT);

ON_WM_SETFOCUS()

afx_msg void On SetFocus(CWnd*);

ON_WM_SETTINGCHANGE()

afx_msg void OnSettingChange(UINT, LPCTSTR);

ON_WM_SHOWWINDOW()

afx_msg void OnShowWindow(BOOL, UINT);

ON_WM_SIZE()

afx_msg void OnSize(UINT, int, int);

ON_WM_SIZECLIPBOARD()

afx_msg void OnSizeClipboard(CWnd*, HGLOBAL);

ON_WM_SIZING()

afx_msg void OnSizing(UINT, LPRECT);

ON_WM_SPOOLERSTATUS()

afx_msg void OnSpoolerStatus(UINT, UINT);

ON_WM_STYLECHANGED()

afx_msg void OnStyleChanged(int, LPSTYLESTRUCT);

ON_WM_STYLECHANGING()

afx_msg void OnStyleChanging(int, LPSTYLESTRUCT);

ON_WM_SYSCHAR()

afx_msg void OnSysChar(UINT, UINT, UINT);

ON_WM_SYSCOLORCHANGE()

afx_msg void OnSysColorChange();

ON_WM_SYSCOMMAND()

afx_msg void OnSysCommand(UINT, LPARAM);

ON_WM_SYSDEADCHAR()

afx_msg void OnSysDeadChar(UINT, UINT, UINT);

ON_WM_SYSKEYDOWN()

afx_msg void OnSysKeyDown(UINT, UINT, UINT);

ON_WM_SYSKEYUP()

afx_msg void OnSysKeyUp(UINT, UINT, UINT);

ON_WM_TCARD()

afx_msg void OnTCard(UINT, DWORD);

ON_WM_TIMECHANGE()

afx_msg void OnTimeChange();

ON_WM_TIMER()

afx_msg void OnTimer(UINT);

ON_WM_VKEYTOITEM()

afx_msg int OnVKeyToItem(UINT, CListBox*, UINT);

ON_WM_VKEYTOITEM_REFLECT()

afx_msg int VKeyToItem(UINT, UINT);

ON_WM_VSCROLL()

afx_msg void OnVScroll(UINT, UINT, CScrollBar*);

ON_WM_VSCROLL_REFLECT()

afx_msg void VScroll(UINT, UINT);

ON_WM_VSCROLLCLIPBOARD()

afx_msg void OnVScrollClipboard(CWnd*, UINT, UINT);

ON_WM_WINDOWPOSCHANGED()

afx_msg void OnWindowPosChanged (WINDOWPOS*);

ON_WM_WINDOWPOSCHANGING()

afx_msg void OnWindowPosChanging (WINDOWPOS*);

ON_WM_WININICHANGE()

afx_msg void OnWinIniChange(LPCTSTR);

用户自定义消息与处理对应规则:

消息映射

对应处理函数原型

ON_MESSAGE(<message>, <memberFxn>)

afx_msg LRESULT memberFxn(WPARAM, LPARAM);

ON_REGISTERED_MESSAGE (<nMessageVariable>,<memberFxn>)

afx_msg LRESULT memberFxn(WPARAM, LPARAM);

ON_REGISTERED_THREADMESSAGE(<nMessageVariable>, <memberFxn>)

afx_msg void memberFxn(WPARAM, LPARAM);

ON_THREAD_MESSAGE (<message>, <memberFxn>)

afx_msg void memberFxn(WPARAM, LPARAM);

MFC消息映射及消息处理函数原型的更多相关文章

  1. MFC 消息映射表和虚函数实现消息映射到底谁的效率高

    深入浅出MFC对于虚函数实现方式的缺点,它指出:虚函数耗费大量内存,系统最终将被这些额外负担拖垮. 但是现在对于容量巨大的白菜价格的内存来说,这种额外负担是否已经过时了呢~?    书中提到,虚函数表 ...

  2. MFC消息映射机制以及画线功能实现

    ---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...

  3. MFC编程入门之五(MFC消息映射机制概述)

    在MFC软件开发中,界面操作或者线程之间通信都会经常用到消息,通过对消息的处理实现相应的操作.比较典型的过程是,用户操作窗口,然后有消息产生,送给窗口的消息处理函数处理,对用户的操作做出响应. 一.什 ...

  4. VS2010/MFC编程入门之五(MFC消息映射机制概述)

    VS2010/MFC编程入门之五(MFC消息映射机制概述)-软件开发-鸡啄米 http://www.jizhuomi.com/software/147.html 上一讲鸡啄米为大家简单分析了MFC应用 ...

  5. MFC消息映射机制

    1.MFC应用框架主要类之间的关系 MFC自动生成的框架中重要的类有:C-App.CMainFrame.C-Doc和C-View. 其他的类如CClassView.CFileView等都是在框架窗口( ...

  6. MFC消息映射与命令传递

    题外话:刚开始学视窗程序设计的时候,我就打印了一本Windows消息详解,里面列举了各种已定义消息的意义和作用,共10多页,在编程的时候翻翻,有时觉得很受用.我发觉很多编程的朋友,虽然每天都面对消息, ...

  7. VS2010-MFC(MFC消息映射机制概述)

    转自:http://www.jizhuomi.com/software/147.html 前面已经说过,Windows应用程序是消息驱动的.在MFC软件开发中,界面操作或者线程之间通信都会经常用到消息 ...

  8. MFC如何添加系统消息处理函数?

    http://zhidao.baidu.com/question/318026804.html 在MFC程序中,我们并不经常直接调用Windows API,而是从MFC类创建对象并调用属于这些对象的成 ...

  9. MFC消息映射的原理:笔记

    多态的实现机制有两种,一是通过查找绝对位置表,二是查找名称表:两者各有优缺点,那么为什么mfc的消息映射采用了第二种方法,而不是c++使用的第一种呢?因为在mfc的gui类库是一个庞大的继承体系,而里 ...

随机推荐

  1. [经验] 项目中 session 过期后弹出的登录窗口无法登录怎么办

    背景: 当session过期后, 按照 系统的设计,  会自动跳转到登录页面, 重新进行登录操作 问题: 由于进入主页后, 其他页面都是嵌入式的模板页, 所以这时的登录页面也是内嵌在index模板下的 ...

  2. android 桌面透明

      目录(?)[-] public void setWallpaperOffsetSteps float xStep float yStep Parameters public void setWal ...

  3. Day9 - H - 最少拦截系统 HDU - 1257

    某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于 ...

  4. lnmp1.5安装swoole

    php7.2安装swoole-4.0.1.tgz     php5.6安装swoole-1.10.4.tgz wget http://pecl.php.net/get/swoole-4.0.1.tgz ...

  5. 071、Java面向对象之使用private封装属性

    01.代码如下: package TIANPAN; class Book { // 定义一个新的类 private String title; // 书的名字 private double price ...

  6. C# 篇基础知识3——面向对象编程

    面向过程的结构化编程,例如1972年美国贝尔研究所推出的C语言,这类编程方式重点放在在定函数上,将较大任务分解成若干小任务,每个小任务由函数实现,分而治之的思想,然而随着软件规模的不断扩张,软件的复杂 ...

  7. pyhon 内置函数

    chr()   asci码 dir()  目录,显示目录. divmod(10,3)   返回商和余数   例如  (3, 1)   返回的为一个元组    可以用于分页 enumerate()    ...

  8. windos常见软件库

    1.护卫神软件库 http://soft.huweishen.com/special/1.html 2.护卫神windows资料库 http://v.huweishen.com/ 3.国超软件下载 h ...

  9. SIAMATIC S7-1200 中通过 Modbus RTU 如何读取地址范围 9999 到 65535 的输入字

    原文地址 说明 除了需要 STEP 7 >= V13 SP1 (TIA Portal) 的软件,还需要 S7-1200 CPU 固件版本 >= V4 (文章编号: 6ES721x-1xx4 ...

  10. MongoDB安装+基础操作

    MongoDB 一. 安装 这里展示使用docker安装mongoDB 拉取最新MongoDB镜像 docker pull mongo 运行容器 docker run -itd --name mong ...