所以我在Visual Studio 2008中使用C ++ / MFC编写一个编辑风格的应用程序。
Visual Studio样式应用程序的默认向导项目充满了有用的优点,但没有解决所有问题,甚至我发现的一些MFC书籍也没有提到这个特定的问题。
如何使用显示浮点值的CMFCPropertyGridProperty
来获取属性查看器以限制它显示的小数位数?现在,您似乎在浮点值上获得了6位小数(使用浮点_variant_t
构造)。有没有办法改变这个?
答案 0 :(得分:3)
类CMFCPropertyGridProperty
有一个名为FormatProperty()
的虚函数。此函数返回一个CString
对象,该对象包含属性值的字符串表示形式。当需要显示属性值时,框架会调用它。
由于函数是虚函数,您可以从CMFCPropertyGridProperty
派生自己的属性类并覆盖该函数,以便在一般情况下调用基类的实现,同时在应用时自己应用格式化逻辑。
相应的变体具有类型VT_R4
(float
)或VT_R8
(double
)。
这样的事情:
class CMyProperty : CMFCPropertyGridProperty
{
...
virtual CString FormatProperty()
{
CString str;
if (GetValue().vt == VT_R8)
{
str.Format(...); // Or whatever you want
}
else
{
str = CMFCPropertyGridProperty::FormatProperty();
}
return str;
}
};
然后,您可以将自己的属性类CMyProperty
的实例传递给CMFCPropertyGrid
的函数AddProperty()
。