【问题标题】:MFC - Overriding the virtual method OnUpdateValue() from the CMFCPropertyGridProperty classMFC - 覆盖 CMFCPropertyGridProperty 类中的虚拟方法 OnUpdateValue()
【发布时间】:2013-11-20 04:34:02
【问题描述】:

在我的 MFC 项目中,我试图从 CMFCPropertyGridProperty 类中覆盖虚拟方法 BOOL OnUpdateMethod()。每当父属性上的组合框发生更改时,该方法的新实现应该更新一些子属性。

所以,我创建了一个使用CMFCPropertyGridProperty 作为基类的新类。这是我的问题:我无法继续前进,因为编译器告诉我没有合适的构造函数可用(错误 C2512)。因此,我尝试声明和实现CMFCPropertyGridProperty 的相同构造函数,并且生成了更多错误!

我应该怎么做才能正确实现任何公共虚拟方法?我相信解决这个问题的方法非常简单,但我对 C++ 和 MFC 有点陌生。

【问题讨论】:

    标签: c++ inheritance mfc virtual-functions


    【解决方案1】:

    根据the documentation,构造函数需要1到3个参数。您需要通过您自己的构造函数的初始化列表来提供这些参数。

    class CMyGridProperty: public CMFCPropertyGridProperty
    {
    public:
        CMyGridProperty(const CString& strGroupName,
                        DWORD_PTR dwData=0,
                        BOOL bIsValueList=FALSE)
           : CMFCPropertyGridProperty(strGroupName, dwData, bIsValueList)
        {
        }
    };
    

    【讨论】:

    • 好的,显然它工作正常!现在我试图测试它,但我也没有太大的成功。是否有任何文档或教程可以实现此类事件?谢谢!
    • @Mudkip 恐怕我不熟悉这个特定的课程。您可能会问另一个问题,其中包含有关您遇到的确切问题的更多详细信息。
    猜你喜欢
    • 2013-06-18
    • 2012-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-28
    • 2012-10-26
    • 1970-01-01
    • 2011-05-21
    相关资源
    最近更新 更多