各位好,我在写一个MDI应用程序,功能是读取一个Raw文件,然后把它转换成BMP存储起来。转换的动作由用户点击菜单选项来触发执行。
OpenFile时,我的程序会把Raw读取到一块动态开辟的buffer中,此buffer的首地址是作为Doc的私有成员存储的。
现在的问题是,是否应该在View中映射这个触发计算动作的菜单项呢?如果在View中进行计算工作,那么如何获得这块buffer的内容比较好呢(因为buffer放在doc中的,且起始地址是doc的私有成员)?直接传递参数吗?如果放在doc中处理计算动作,也就是在doc中映射该菜单项,那么视图不会直接去调用这个菜单函数,那又如何把计算结果通知视图呢?
OpenFile时,我的程序会把Raw读取到一块动态开辟的buffer中,此buffer的首地址是作为Doc的私有成员存储的。
现在的问题是,是否应该在View中映射这个触发计算动作的菜单项呢?如果在View中进行计算工作,那么如何获得这块buffer的内容比较好呢(因为buffer放在doc中的,且起始地址是doc的私有成员)?直接传递参数吗?如果放在doc中处理计算动作,也就是在doc中映射该菜单项,那么视图不会直接去调用这个菜单函数,那又如何把计算结果通知视图呢?
违设计者的初衷
CRaw2BmpView:public CScrollView
{
……
private:
BYTE* m_pRawData;
BYTE* m_pBmpData;
}
然后在Document中进行new的动作,和计算的动作。
这里还有一个疑问,就是MDI中,一个Doc可以对应多个View,如何确保doc能准确得到RawData的buffer呢?