一、在文档类中添加两个CDib成员变量:m_dib, m_newDib,一个int 成员变量m_stateDoc和一个CString成员变量m_fileName:
int m_stateDoc; // 用于判断是否打开了文件
CDib m_newDib; // CDib类对象保存图像,用于获取一些必要的信息
CDib m_dib; // CDib类对象保存原图数据,在初始化图像数据时有用
CString m_fileName; // 保存图像名称路径
二、在文档类中添加打开文件菜单的消息处理:
void CScanPictureDoc::OnFileOpen()
{
// TODO: Add your command handler code here
// 创建打开文件对话框
CFileDialog dlg(TRUE, _T("BMP"), _T("*.BMP"), OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, _T("位图文件(*.BMP)|*.BMP|"));
if(IDOK == dlg.DoModal())
{// 文件打开成功后,获取文件路径,并把图像载入m_dib和m_newDib两个类中,m_stateDoc = 1表明文件已打开
m_fileName.Format("%s", dlg.GetPathName());
m_dib.LoadFile(m_fileName);
m_newDib.LoadFile(m_fileName);
m_stateDoc = 1;
}
}
三、在View窗口类中添加两个CDib *成员变量:m_pDib, m_pNewDib和一个int成员变量m_state,并且添加初始化图像数据的成员函数InitializePictureData:
void CScanPictureView::InitializePictureData()
{
// 获取保存的文档
CScanPictureDoc * pDoc = GetDocument();
ASSERT_VALID(pDoc);
m_state = 1; // 表明已经从文档中获取数据
// 如果文档中已经