无法在Visual Studio 2010中添加事件处理程序(mfc项目)
我最近将MFC visual studio 6.0项目转换为Visual Studio 2010项目,并且每次尝试将事件处理程序添加到控件时遇到问题我的项目中的某些形式。在一个特定的页面上,我有一个单选按钮,我尝试使用3种不同的方式添加单击事件处理程序:无法在Visual Studio 2010中添加事件处理程序(mfc项目)
1)右键单击单选按钮并单击“添加事件处理程序”。此方法不会产生错误消息,但不会创建事件处理程序。它只是关闭事件处理程序向导,没有任何类型的消息。
2)右键单击单选按钮并单击属性。在属性窗口中,我单击事件窗口(闪电按钮)。然后我导航到点击事件并点击添加处理程序。此方法产生一个错误消息窗口,说“属性值无效”和此错误消息的详细信息在下面的框中说“灾难性故障”。
3)通过类向导添加事件处理程序。这导致了与上面编号1中所述相同的结果。
我的项目注释:
1)运行Windows XP SP3
2)不是所有的形式存在这个问题。在某些表单上,我可以添加事件处理程序。
3)当我收到“属性值无效”这也打破撤消错误信息/重做功能
4)项目包含公司Farpoint ActiveX控件
检查的MFC类已添加有问题的形式。我已经VS2010的'添加变量...'向导默认失败,在父窗体尚未拥有关联类的控件中,所以对于事件处理程序也是如此。
它们已经创建。 – 2011-03-22 19:58:44
我曾经在项目中遇到同样的问题。我将所有内容重新命名为新名称。不知道这是什么原因造成的问题,但我一直无法解决它。尽管拥有合适的课程,但添加事件处理程序对我仍然无动于衷。我落得这样做是抄袭事件处理代码是需要的,这需要3件:
1)来处理消息声明为public类中的
afx_msg void OnBnClickedSaveTButton();
2)的该实现的函数功能:
void CExampleDlg::OnBnClickedSaveTButton()
{
}
3)的事件处理程序的消息在消息地图
BEGIN_MESSAGE_MAP(CExampleDlg, CDialogEx)
// Other mappings here
ON_BN_CLICKED(IDC_SAVE_TO_DISK_RADIO, &CExampleDlg::OnBnClickedSaveTButton)
END_MESSAGE_MAP()
后的连接
您可以从对话框编辑器获取IDC名称。所有这些都像魅力一样,尽管它比添加事件处理程序向导花费的时间要长一些。
这是因为智能感知或其数据库被禁用。我最近遇到了这个。 检查这些选项,应该是:
IDE工具菜单 - >选项 - >文本编辑器 - > C/C++ - >高级 - >禁用数据库=假
IDE工具菜单 - >选项 - >文本编辑器 - > C/C++ - >高级 - >禁用Intellisence =假
IDE工具菜单 - >选项 - >文本编辑器 - > C/C++ - >高级 - >重新扫描解决方案间隔= 0
打开一个空VS IDE,修复选项,并重新打开项目,一切都应该没问题。
我建议你将代码复制出来,将出现问题的单个对话框复制到同一个解决方案中的新项目中。同样的错误是否会发生? – 2010-09-14 23:01:34
我复制了资源文件,同时在同一个解决方案中将给我问题的表单的.h和.cpp文件复制到一个新项目中,并得到与上述相同的错误。一个有趣的事情是,如果我只复制对话框的资源文件并为它创建一个新的.cpp和.h文件,我可以很好地添加事件处理程序。 – 2010-09-15 13:09:05
由于几个不同的问题,我最终放弃了将这个visual studio 6.0项目升级到2010年。这是非常接近工作,但我没有足够的时间来解决我的问题。我采取了将视觉工作室6.0安装在我的机器上:*(。如果我知道这一点,我会再次发布。 – 2011-01-13 14:27:58