给定一个 wparam,我如何确定这是不是是 MFC 应用程序中的 File->Exit 命令?

Posted

技术标签:

【中文标题】给定一个 wparam,我如何确定这是不是是 MFC 应用程序中的 File->Exit 命令?【英文标题】:Given a wparam, how can I determine if that is the File->Exit command in an MFC app?给定一个 wparam,我如何确定这是否是 MFC 应用程序中的 File->Exit 命令? 【发布时间】:2012-03-26 21:00:02 【问题描述】:

在 MFC 中的某个地方是否有一个已定义的常量,它是 File->Exit 菜单命令的标准定义?我正在尝试确定一个命令是否是那个命令,但我只有一个 WPARAM 可以使用。

【问题讨论】:

如果你有 wParam,你有一个消息。是哪条消息? WM_QUIT? 【参考方案1】:

APP_EXIT(57665 或 0xE141)按命令发送到 appcore.cpp 中声明的消息映射(或者如果您在 CWinApp 派生类中覆盖它);

BEGIN_MESSAGE_MAP(CWinApp, CCmdTarget)
  ON_COMMAND(ID_APP_EXIT, &CWinApp::OnAppExit)
END_MESSAGE_MAP()

反过来,OnAppExit 向 CWinApp 中的主窗口发送 WM_CLOSE 消息:

void CWinApp::OnAppExit()

  // same as double-clicking on main window close box
  ASSERT(m_pMainWnd != NULL);
  m_pMainWnd->SendMessage(WM_CLOSE);

这就是您的应用程序在 MFC 中的结束方式,而不是 WM_QUIT。

【讨论】:

以上是关于给定一个 wparam,我如何确定这是不是是 MFC 应用程序中的 File->Exit 命令?的主要内容,如果未能解决你的问题,请参考以下文章

如何确定删除给定循环是不是会断开图表

如何确定一个实体是不是适合 O(N^2) 中的给定框?

C#如何确定一个类型是不是实现了给定的接口?

给定一个线程 id,如何确定它是不是仍在 Windows 上运行

python小问题:给定一个日期,如何确定这是今年的第几周?

如何确定给定时区中的给定时间是不是在postgresql中是DST?