所以我正在使用 Visual Studio 2008 中的 C++/MFC 开发一个编辑器风格的应用程序。
Visual Studio 风格应用程序的默认向导项目充满了有用的优点,但并没有解决所有问题,甚至我发现的一些 MFC 书籍也没有提到这个特定的问题。
您如何使用CMFCPropertyGridProperty
显示浮点值来限制其显示的小数位数的属性查看器?现在,您似乎在浮点值上获得了 6 位小数(使用浮点构造_variant_t
)。有什么办法可以改变这个吗?
该类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
's function AddProperty()
。