如何在 MFC CDialog 类中自动删除事件处理程序?

Posted

技术标签:

【中文标题】如何在 MFC CDialog 类中自动删除事件处理程序?【英文标题】:How to delete event handler automatically in a MFC CDialog class? 【发布时间】:2018-02-24 02:42:14 【问题描述】:

我正在使用 Visual C++ 2010 和 MFC 编写一个基于对话框的小型应用程序。

我在对话框中点击一个控件(比如“静态文本”控件),对应的类会自动创建一个函数和变量。

现在我发现事件处理程序没用。如何自动删除事件处理程序?

【问题讨论】:

我不确定有没有办法自动删除它们——我一直都是手工完成的。 @MarkRansom 可以。至少,使用可用的功能。请看我的回答。虽然它不是全自动的。 【参考方案1】:

好吧,您可以在其中一个属性窗口中右键单击它并选择删除事件处理程序。但它会做的是注释掉代码。

也可以通过ClassWizard 完成。引用:

使用 ClassViewWizardBar,删除消息处理函数与删除任何其他成员函数相同。 ClassViewWizardBar

删除函数声明MSGMESSAGEDISPATCH 映射中删除任何关联的映射条目 并注释掉函数体或定义,以便您可以根据需要轻松删除它。

这包括变量。其他方式还有更多信息here


类向导

右键单击对话框资源并选择类向导

选择要删除的事件处理程序,然后选择删除处理程序


类视图

首先选择类,使其具有焦点:

单击属性窗格上的闪电,然后展开控件以查看事件:

点击下拉箭头并选择删除

希望这些示例足以向您展示如何删除函数。如果您希望我为您提供更多信息,请告诉我。

【讨论】:

@zet 请查看更新后的答案。如果您发现它有用且内容丰富,请记住也给它投票。谢谢。 :)

以上是关于如何在 MFC CDialog 类中自动删除事件处理程序?的主要内容,如果未能解决你的问题,请参考以下文章

C++ MFC - 在 CDialog::OnSize 事件 (GetWindowRect) 上没有引发运行时错误的代码执行失败

从 CDialog 派生的对话框在 DoModal (MFC/C++) 之后返回 -1

MFC中 如何设置CDialog可以拉伸? 就像单文档的窗口那样? 还是要自己去实现的?

★VC-MFC◆CToolbarCtrl && CDialog 下拉菜单 ★

模态 CDialog 找不到资源 (MFC)

MFC中获取dialog窗体的宽度及大小等信息