MFC做控件,属性的持久化有关问题,
MFC做控件,属性的持久化问题,高手请进!!
例如一个表格控件,有一个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);
那么,这样的属性如何持久化?谢谢了。
------解决方案--------------------
低手进来蹭点分
------解决方案--------------------
你的表格控件是在其他窗体上吗?表格控件是在oncreate前创建还是后创建
------解决方案--------------------
1、属性序列化保存、读取是自动完成的
2、OnRowCountChange函数只在你动态设置属性值时触发
3、m_rowCount是创建属性时自动映射的变量
例如一个表格控件,有一个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);
那么,这样的属性如何持久化?谢谢了。
------解决方案--------------------
低手进来蹭点分
------解决方案--------------------
你的表格控件是在其他窗体上吗?表格控件是在oncreate前创建还是后创建
------解决方案--------------------
1、属性序列化保存、读取是自动完成的
2、OnRowCountChange函数只在你动态设置属性值时触发
3、m_rowCount是创建属性时自动映射的变量