分类: C/C++
2008-08-01 17:08:25
为了方便大家能快速上手,本人编写了一示范程序。建立CPfxEditView的派生类:
class CMyEditView : public CPfxEditView
{
DECLARE_DYNCREATE(CMyEditView)
protected:
CMyEditView(); // 动态创建所使用的受保护的构造函数
virtual ~CMyEditView();
public:
CMyEditDoc* GetDocument() const;
protected:
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual BOOL OnSetupPrintInfo(CPfxEditPrintInfo* pPrintInfo);
protected:
DECLARE_MESSAGE_MAP()
};
建立CPfxEditDoc的排生类:
class CMyEditDoc : public CPfxEditDoc
{
DECLARE_DYNCREATE(CMyEditDoc)
protected:
CMyEditDoc();
virtual ~CMyEditDoc();
public:
// 当前使用的语法配置信息是否与给定的相同。
BOOL IsCurFileTypeInfo(const CMyEditTypeInfo* pTypeInfo) const;
// 获取当前使用的语法配置信息。
const CMyEditTypeInfo* GetFileTypeInfo() const;
// 指定本文档使用哪种语法配置信息。
void SetFileTypeInfo(CMyEditTypeInfo* pTypeInfo);
protected:
virtual void SetModifiedFlag(BOOL bModified);
virtual LONG OnEvent(UINT nCode, LPARAM lParam);
virtual BOOL OnInitDocument(LPCTSTR pszPathName);
protected:
DECLARE_MESSAGE_MAP()
};
注册文档模板:
BOOL CApp::InitInstance()
{
// 注册应用程序的文档模板。文档模板
// 将用作文档、框架窗口和视图之间的连接
CMultiDocTemplate* pTemplate = new CMultiDocTemplate(IDR_MYEDIT,
RUNTIME_CLASS(CMyEditDoc),
RUNTIME_CLASS(CMyEditFrame), // 自定义 MDI 子框架
RUNTIME_CLASS(CMyEditView));
if (pTemplate == NULL)
{
return false;
}
AddDocTemplate(pTemplate);
......
}
现在就可以使用CPfxEditCtrl的功能了......就这么简单,更使用平常的MFC DOC/VIEW没有什么两样,如图所示: