MFC单文档入门

一、如何修改打开/保存文件对话框的后缀名

https://blog.csdn.net/zhangtaohbwh/article/details/47910739

1、主窗口标题栏文本
2、缺省文档名称
3、文档类型名称
4、文档类型描述符
5、文档缺省扩展名
6、文件类型(由RegisterShellFileTypes向注册表注册文件类型,该字符串会被写入注册表)

如果没有用RegisterShellFileTypes函数向注册表注册文件类型,那么是无法通过双击文件打开该文件的,除非通过其他方式向注册表注册了文件类型

7、文件类型名称(存储在注册表中的文件类型名称)


示例:
myMainFrame\nmyGraph\nserializeTest\nGraph(*.aq)\n.aq\nserializeTest.Document\nserializeTest.Document
 

二、单文档菜单命令响应路由

单文档应用程序中,菜单事件响应顺序:view->doc->frame->app,按优先级排列优先级高的那个类才会响应,只有前者不处理消息的时候,后者才会处理

三、单文档打开命令

可以看到上面的有对菜单id的消息映射,实际上调用的是CWinApp:OnFileNew

void CWinApp::OnFileNew()
{
    if (m_pDocManager != NULL)
        m_pDocManager->OnFileNew();
}

app ->docManger->CDocTemplate->创建pFrame-> doc::OnNewDocument()

四、文档类对新建、打开、保存(另存为)处理

class CTestDoc : public CDocument
{
protected: // 仅从序列化创建
	CTestDoc();
	DECLARE_DYNCREATE(CTestDoc)


public:
	virtual BOOL OnNewDocument();
    virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
    virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
}

重载上面3个函数处理即可

五、序列化

virtual void Serialize(CArchive& ar);

不建议采用,因为现在有大把的序列化库,比如xml、json,ini等

比MFC自带的序列优秀太多了

 

### 回答1: MFC(Microsoft Foundation Class)是微软公司开发的一套基于C++的应用程序框架,用于快速开发Windows平台上的图形用户界面应用程序。MFC提供了许多类和函数,可以方便地创建窗口、处理用户输入、绘制图形、响应事件等操作。 MFC文档和多文档MFC应用程序中常用的两种界面布局。文档应用程序通常适用于只需要打开一个窗口,一次只处理一个文档的应用场景。多文档应用程序则可以同时打开多个文档窗口,同时进行多个文档的操作。 在MFC文档应用程序中,通常会有一个主窗口(MainFrame),用户可以在该窗口中显示和操作文档内容。主窗口通常包含菜、工具栏和状态栏等控件,用于提供用户界面和交互操作。当用户打开一个文档时,程序会创建一个对应的文档窗口(DocumentView),并在主窗口中显示该文档窗口。用户可以在文档窗口中编辑和保存文档内容。 在MFC文档应用程序中,主窗口同样包含菜、工具栏和状态栏等控件,用于提供用户界面和交互操作。当用户打开一个文档时,程序会创建一个对应的文档窗口,并在主窗口中显示该文档窗口。用户可以同时打开多个文档窗口,分别操作每个文档内容。在多文档应用程序中,通常还提供了选项卡式的标签栏,用于方便用户切换和管理不同文档窗口。 无论是文档还是多文档应用程序,MFC提供了一套丰富的类和函数,方便开发者创建和管理窗口、文档和视图,并进行用户交互操作。开发者可以根据具体需求选择适合的界面布局方式,实现各种功能丰富的应用程序。 ### 回答2: MFC(Microsoft Foundation Class)是微软公司开发的一套用于Windows平台上应用程序开发的C++类库。MFC提供了各种类和函数,可以帮助开发者更加方便地创建Windows应用程序。 MFC中的文档应用程序是指只有一个主窗口的应用程序。它通常用于简的应用程序,如文本编辑器或画图工具等。在文档应用程序中,用户打开的文件只能在主窗口中进行编辑,并且只能同时打开一个文件。这种应用程序的好处是简易用,用户只需要关注一个窗口和一个文件,操作起来方便快捷。 MFC中的多文档应用程序是指可以同时打开和编辑多个文件的应用程序。多文档应用程序通常用于处理更复杂的任务,如图形设计软件或电子表格应用程序等。在多文档应用程序中,可以同时打开多个文件,并且每个文件都有自己的窗口进行编辑。用户可以方便地在不同的窗口间切换,并且可以同时在多个文件之间进行复制、粘贴等操作。 无论是文档应用程序还是多文档应用程序,MFC都提供了一些基础的类和功能,如窗口管理、菜栏、工具栏、对话框等。开发者可以通过继承这些类并重写相应的函数来实现自定义的操作和功能。同时,MFC还提供了丰富的文档视图模型,开发者可以方便地构建应用程序的界面和功能。 总之,MFC文档和多文档应用程序都是用于Windows平台上应用程序开发的两种常见方式。文档适合简的应用程序,而多文档适合处理更复杂的任务。无论选择哪种应用程序类型,MFC都提供了丰富的功能和类,方便开发者进行应用程序的开发和定制。 ### 回答3: MFC(Microsoft Foundation Classes)是一组用于开发Windows操作系统下应用程序的类库,其主要功能是使开发者更容易地构建Windows图形用户界面(GUI)应用程序。 文档(SDI)和多文档(MDI)是MFC中两种常见的应用程序框架。文档应用程序是指每个程序窗口对应一个文档视图,例如一个文本编辑器,一个窗口对应一个打开的文本文件。多文档应用程序则是指每个程序窗口可以同时打开多个文档视图,例如一个图形设计工具,可以同时打开多个图形文件。 在MFC中,文档应用程序的构建非常简。首先,我们需要创建一个继承自CWinApp的应用程序类,并在其中进行一些初始化设置和窗口创建的操作。然后,我们需要创建一个继承自CFrameWnd的主窗口类,并将其与应用程序类进行关联。最后,我们需要创建一个继承自CRichEditDoc和一个继承自CView的文档类和视图类,用于处理文档的数据和视图的显示。通过这些类的组合,我们可以轻松地实现一个简文档应用程序。 而多文档应用程序的构建相对复杂一些。除了创建应用程序类和主窗口类之外,我们还需要创建一个继承自CMDIFrameWnd的多文档框架窗口类,并将其与应用程序类进行关联。另外,我们需要创建一个继承自CMDIChildWnd的子窗口类,用于处理每个打开的文档视图。在这种应用程序中,我们可以通过菜或工具栏来打开、关闭或切换文档视图。通过这些类的组合,我们可以构建一个功能丰富的多文档应用程序。 总的来说,MFC中的文档和多文档应用程序框架都提供了方便的开发环境。文档适用于对每个窗口对应一个文档视图的应用程序,多文档适用于对每个窗口可以同时打开多个文档视图的应用程序。开发者可以根据自己的实际需求选择合适的框架,并根据MFC提供的类库快速构建自己的应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值