佚名通过本文主要向大家介绍了mfc控件属性,mfc combox控件,mfc edit控件,mfc tab控件,mfc图片控件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: MFC做控件,属性的持久化问题,高手请进!!
描述:
解决方案1:
描述:
例如一个表格控件,有一个RowCount的可读写属性,此属性反映了表格的行数。
属性持久化使用DoPropExchange里面调用
PX_Long(pPX, _T("RowCount"), m_rowCount)
问题:
1、m_rowCount变量在序列化读取后,没有调用OnRowCountChange函数,无法得到变化。并且序列化读取是在 Ctrl::OnCreate 操作之前,甚至无法在PX函数里面通知。
2、m_rowCount变量映射没有必要。此属性可以直接根据内部数据得到。如:
GetRows : return m_data.GetSize();
SetRows : m_data.SetSize(n);
那么,这样的属性如何持久化?谢谢了。
解决方案1:
1、属性序列化保存、读取是自动完成的
2、OnRowCountChange函数只在你动态设置属性值时触发
3、m_rowCount是创建属性时自动映射的变量
你的表格控件是在其他窗体上吗?表格控件是在oncreate前创建还是后创建
解决方案3:低手进来蹭点分