0

我有几个浮动的属性。默认情况下,CMFCPropertyGridProperty 以 6 位小数显示这些。我希望它们以 2 位小数显示,如12.75vs 12.750000。所以我输入了以下行:

CMFCPropertyGridProperty::m_strFormatFloat = "%.2f";

这使它正确显示 2 位小数。但是当我更改值时,%.2f不是有效的scanf格式,所以程序炸毁了。

我尝试像这样覆盖FormatProperty()函数:

class PropertyGrid2Digits : public CMFCPropertyGridProperty
{
public:
    PropertyGrid2Digits(const CString& strName, const float InitialValue = 0, LPCTSTR lpszDescr = NULL, DWORD_PTR dwData = 0);
    virtual ~PropertyGrid2Digits();
    virtual CString FormatProperty() {
        CString str;
        str.Format("%.2f", GetValue().fltVal);
        return str;
    }
};

但我的版本仅在首次创建属性时才被调用。不知何故,CMFCPropertyGridProperty::FormatProperty()每当绘制属性时都会调用该函数。

有人知道我该如何解决这个问题吗?谢谢!

4

0 回答 0