使用扩展的CFileDialog实现文件预览
一直在写一个画图的程序(都是些二维图元的绘制),看到AutoCAD中在“文件-打开”时可以对保存的文件实现预览。自己也对CFileDialog类扩展,希望实现此功能。对于*.bmp,*.txt的预览很容易,而对于MFC的序列化产生的文件,实现起来就没那么容易了。自己也看了一些MFC的源码,希望能找到些方法。
MFC在点击"文件-打开"调用的是CWinApp::OnFileOpen这个调用CDocManager::OnFileOpen用调用CWinApp::OpenDocumentFile函数...最后会调用CDocument::OnOpenDocument,在CDocument::OnOpenDocument函数中实现了CArchive和CFile的结合完成反序列化。
我自己的想法是,在单击要打开的文件时,自然是要将保存的文件(我保存的文件格式是.gps)里的数据读出来,将图元绘制在预览窗口指定的位置上。这牵扯到类的动态创建,自己写类的工厂,想想估计也简单不了(主要是现在代码将近2W行,第一次写这么大的程序,有时真是力不从心啊)。那就采用MFC的反序列化提前实现OnOpenDocument函数的代码。
前几天跟老师聊天,顺便提了下这个问题,由于时间紧,老师说将自己的文件格式转化为wmf或者emf来搞。也没细问,现在也没能搞出来。
最近期末,再加上要考研。没时间研究了。希望做过这方面研究的gg,jj,dd,mm可以帮帮忙。谢谢了!