社区
控件与界面
帖子详情
很菜的问题,就是MDI界面的“文件/打开”,如何在系统生成的代码里加代码打开自己的文件
mygis
2000-12-13 03:54:00
我用VC的EXE WIZARD生成了MDI的程序框架,如何在系统生成的代码里加代码打开自己的文件,因为系统的文件/打开只是打开一个对话框,我不知在哪儿加上代码打开自己的文件并显示视图?
...全文
155
5
打赏
收藏
很菜的问题,就是MDI界面的“文件/打开”,如何在系统生成的代码里加代码打开自己的文件
我用VC的EXE WIZARD生成了MDI的程序框架,如何在系统生成的代码里加代码打开自己的文件,因为系统的文件/打开只是打开一个对话框,我不知在哪儿加上代码打开自己的文件并显示视图?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vcmfc
2000-12-13
打赏
举报
回复
重载吗?,在你从CWinApp的子类中创建一个跟原来函数一样的函数,在函数中在需要的地方在调用原函数,这是一个比较粗的理解,真正C++的重载给我说的又是一回事,重载后你要改一个原打开的入口,在你的CxxxApp.cpp中。
mygis
2000-12-13
打赏
举报
回复
to VCMFC:
如何重载,能讲讲具体的操作步骤吗?
AtCsdn
2000-12-13
打赏
举报
回复
其实没那么复杂,只须如此如此:
在InitInstance()函数中加入如下部分:
CCommandLineInfo cmdInfo;
cmdInfo.m_nShellCommand = CCommandLineInfo::FileOpen;
// 假定要打开的文件为在当前工作目录下的default.set.
CHAR* pWorkDir = _getcwd( NULL, _MAX_PATH );
CString sWorkDir = pWorkDir;
cmdInfo.m_strFileName = sWorkDir+"\\smc.set";
ParseCommandLine(cmdInfo);
则程序启动时自动为你打开文件 而不是 "New Document".
vcmfc
2000-12-13
打赏
举报
回复
这是一些说明:
改变MFC默认文档操作方式
当利用MFC编程时,其文档/视图结构为我们自动生成了文件新建,打开,保存的代码。这为我们省去了很多麻烦。但当操作对象是ODBC数据库等非文本文件时,问题出现了,如何改变其默认文档操作过程了?
经过分析MFC源代码可知。其默认菜单中的"新建""打开"消息分别对应CwinApp::OnFileNew()与CwinApp::OnFileOpen(),而这两个函数又直接调用CDocManager::OnFileNew与CDocManager::OnFileOpen。CDocManager::OnFileOpen的工作过程如下:
1. 调用CDocManager::DoPromptFileName,而DoPromptFileName的作用是显示文件打开对话框获得文件名。
2. 调用CWinApp::OpenDocumentFile(LPCTSTR lpszfileName)。
如果我们要改变文档打开方式,只需在CWinApp的继承类中重载DoPromptFileName与OpenDocumentFile即可。例如要改变默认的文件打开对话框。只需自建一个文件打开对话框,在重载的DoPromptFileName中调用他,获得一个文件名。
下面分析CWinApp::OpenDocumentFile。OpenDocumentFile的工作过程是:
1. 由参数lpszFileName的后缀判断用哪个文档模板。
2. 对该文档模板的的文档,视图,框架窗口作出调整。
3. 调用CDocTemplate::OpenDocumentFile
CDocTemplate::OpenDocumentFile是纯虚函数,由其派生类CsingleDocTemplate及CMultiDocTemplate实现,以CSingleDocTemplate::OpenDocumentFile举例说明之。
1. 判断有无现存文档,有则判断其是否已保存。
2. 新建框架窗口。
3. 由文件名路径判断该文件是否存在,存在则调用自定义的CMyDoc::OnOpenDocument,否则调用CMyDoc::OnNewDocument。
从以上分析我们可以对MFC默认的文档操作方式做多种改变,如改变文件打开保存方式,改变文件打开保存对话框等。
以上所示的各种源代码都可以从VC安装目录下的MFC\include及mfc\src子目录下得到。CWinApp类及CDocManager类CDocTemplate类及CsingleDocManager,CDocument类的头文件是afxwin.h,CWinApp类的源代码在AppCore.cpp中,CDocManager源代码在Docmgr.cpp中,CDocTemplate类及CSingleDocManager类的源代码分别位于doctempl.cpp与docsingl.cpp中。
总之,要学好MFC文档视图结构的最好方法就是多看看MFC源代码。
vcmfc
2000-12-13
打赏
举报
回复
重载CWinApp::OnFileOpen()函数
详解MFC框架窗口、文档和视图
尽管窗口、文档和视图是MFC的基础,但可能也是最不容易理解的部分,因为其概念比传统编程所需要的Windows函数更强一些,因此,须在本章做进一步详细讨论框架窗口、文档和视图的方法和技巧。 6.1框架窗口 分两类
一些常用的资料_硬件/系统/等
一些常用的资料_硬件/系统/等标题前数字代表专题所在楼层数2. BIOS报警声意义3. BIOS自检与开机故障相关
问题
5. 计算机几个常见指标的意义6. 显卡GPU参数7. 显示卡常见故障全面解决8. 集成声卡常见故障及解决9....
程序设计风格、几个控件、递归在TreeView中的使用
又来了,这次是Level 100,木哈哈,简单总结及有些小细节需要注意的地方。 应用程序的设计风格大致上分三种:
MDI
,SDI,...SDI就是单文档
界面
应用程序,例如Winrar,特点是只有一个底层窗口,所有弹出窗口均以ShowDia
MFC
界面
编程实战:菜单、工具栏与状态栏完整设计
也许你会问:现在还有必要学 MFC 吗?我的答案是:有必要,但要有选择地学。...更重要的是,世界上仍有成千上万的关键系统运行在 MFC 之上。掌握它,不仅是对技术的尊重,更是对自己职业能力的投资。
基于C#的智能仓库管理系统开发实战项目
从一个简单的Product类,到完整的仓储管理系统,我们走过了需求分析、建模设计、数据库搭建、ORM集成、业务开发、安全加固、
界面
呈现的全过程。这不是一蹴而就的奇迹,而是一步步工程实践的积累。真正的系统之美,不...
控件与界面
604
社区成员
12,293
社区内容
发帖
与我相关
我的任务
控件与界面
PowerBuilder 控件与界面
复制链接
扫一扫
分享
社区描述
PowerBuilder 控件与界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章