我有几个浮动的属性。默认情况下,CMFCPropertyGridProperty 以 6 位小数显示这些。我希望它们以 2 位小数显示,如12.75
vs 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()
每当绘制属性时都会调用该函数。
有人知道我该如何解决这个问题吗?谢谢!