6.0最多可以同时vc++6.0打开出现问题怎么办几个窗口进行工作

& VS2010/MFC编程入门之十七(对话框:文件对话框)
VS2010/MFC编程入门之十七(对话框:文件对话框)
&&&&&&&上一讲鸡啄米介绍的是,本节讲解文件对话框。文件对话框也是很常用的一类对话框。&&&&&& 文件对话框的分类&&&&& 文件对话框分为打开文件对话框和保存文件对话框,相信大家在Windows系统中经常见到这两种文件对话框。例如,很多编辑软件像记事本等都有&打开&选项,选择&打开&后会弹出一个对话框,让我们选择要打开文件的路径,这个对话框就是打开文件对话框;除了&打开&选项一般还会有&另存为&选项,选择&另存为&后往往也会有一个对话框弹出,让我们选择保存路径,这就是保存文件对话框。&&&&&& 正如上面举例说明的,打开文件对话框用于选择要打开的文件的路径,保存文件对话框用来选择要保存的文件的路径。&&&&&& 文件对话框类CFileDialog&&&&& MFC使用文件对话框类CFileDialog封装了对文件对话框的操作。CFileDialog类的原型如下:explicit CFileDialog(&& BOOL bOpenFileDialog,&& LPCTSTR lpszDefExt = NULL,&& LPCTSTR lpszFileName = NULL,&& DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,&& LPCTSTR lpszFilter = NULL,&& CWnd* pParentWnd = NULL,&& DWORD dwSize = 0,&& BOOL bVistaStyle = TRUE);&&&&&&&参数说明:&&&&&& bOpenFileDialog:指定要创建的文件对话框的类型。设为TRUE将创建打开文件对话框,否则将创建保存文件对话框。&&&&&&&lpszDefExt:默认的文件扩展名。如果用户在文件名编辑框中没有输入扩展名,则由lpszDefExt指定的扩展名将被自动添加到文件名后。默认为NULL。&&&&&& lpszFileName:文件名编辑框中显示的初始文件名。如果为NULL,则不显示初始文件名。&&&&& &dwFlags:文件对话框的属性,可以是一个值也可以是多个值的组合。关于属性值的定义,可以在MSDN中查找结构体OPENFILENAME,元素Flags的说明中包含了所有属性值。默认为OFN_HIDEREADONLY和OFN_OVERWRITEPROMPT的组合,OFN_HIDEREADONLY表示隐藏文件对话框上的&Read Only&复选框,OFN_OVERWRITEPROMPT表示在保存文件对话框中如果你选择的文件存在了,就弹出一个消息对话框,要求确定是否要覆盖此文件。&&&&&&&lpszFilter:文件过滤器,它是由若干字符串对组成的一个字符串序列。如果指定了文件过滤器,则文件对话框中只有符合过滤条件的文件显示在文件列表中待选择。给大家看看VS2010 MSDN中给出的一个例子:&&&&&& static TCHAR BASED_CODE szFilter[] = _T(&Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.*.xls)|*. *.xls|All Files (*.*)|*.*||&);&&&&&& 这样设置过滤器以后,文件对话框的扩展名组合框中将有四个选项:Chart Files (*.xlc)、Worksheet Files (*.xls)、Data Files(*.*.xls)和All Files (*.*),大家可以看到每种文件的扩展名规定都是一个字符串对,例如Chart Files的过滤字符串是Chart Files(*.xlc)和*.xlc成对出现的。&&&&&& pParentWnd:文件对话框的父窗口的指针。&&&&&&&dwSize:OPENFILENAME结构体的大小。不同的操作系统对应不同的dwSize值。MFC通过此参数决定文件对话框的适当类型(例如,创建Windows 2000文件对话框还是XP文件对话框)。默认为0,表示MFC将根据程序运行的操作系统版本来决定使用哪种文件对话框。&&&&&& bVistaStyle:指定文件对话框的风格,设为TRUE则使用Vista风格的文件对话框,否则使用旧版本的文件对话框。此参数仅在Windows Vista中编译时适用。&&&&&& 文件对话框也是模态对话框,所以在打开时也需要调用CFileDialog类的DoModal()成员函数。在打开文件对话框中点了&打开&或者在保存文件对话框中点了&保存&以后,我们可以使用CFileDialog类的成员函数GetPathName()获取选择的文件路径。&&&&&& 下面列出几个CFileDialog类的成员函数,我们可以使用它们获得文件对话框中的各种选择。GetFileExt():获得选定文件的后缀名。GetFileName():获得选定文件的名称,包括后缀名。GetFileTitle():获得选定文件的标题,即不包括后缀名。GetFolderPath():获得选定文件的目录。GetNextPathName():获得下一个选定的文件的路径全名。GetPathName():获得选定文件的路径全名。GetReadOnlyPref():获得是否&以只读方式打开&。GetStartPosition():获得文件名列表中的第一个元素的位置。&&&&&& 文件对话框实例&&&&& 根据前面所讲内容,鸡啄米给大家做个文件对话框实例。&&&&&& 1.创建一个基于对话框的MFC应用程序工程,名称设为&Example17&。&&&&&& 2.修改主对话框IDD_EXAMPLE17_DIALOG的模板,删除自动生成的&TODO: Place dialog controls here.&静态文本框,添加两个编辑框,ID分别为IDC_OPEN_EDIT和IDC_SAVE_EDIT,再添加两个按钮,ID分别设为IDC_OPEN_BUTTON和IDC_SAVE_BUTTON,Caption分别设为&打开&和&保存&。按钮IDC_OPEN_BUTTON用于显示打开文件对话框,编辑框IDC_OPEN_EDIT显示在打开文件对话框中选择的文件路径。按钮IDC_SAVE_BUTTON用于显示保存文件对话框,编辑框IDC_SAVE_BUTTON显示在保存文件对话框中选择的文件路径。&&&&&& 3.分别为按钮IDC_OPEN_BUTTON和IDC_SAVE_BUTTON添加点击消息的CExample17Dlg::OnBnClickedOpenButton()和CExample17Dlg::OnBnClickedSaveButton()。&&&&& &4.修改两个消息处理函数如下:
void&CExample17Dlg::OnBnClickedOpenButton() &&
&&&&TCHAR&szFilter[]&=&_T(&文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||&); &&
&&&&CFileDialog&fileDlg(TRUE,&_T(&txt&),&NULL,&0,&szFilter,&this); &&
&&&&CString&strFileP &&
&&&&if&(IDOK&==&fileDlg.DoModal()) &&
&&&&&&&&&&
&&&&&&&&strFilePath&=&fileDlg.GetPathName(); &&
&&&&&&&&SetDlgItemText(IDC_OPEN_EDIT,&strFilePath); &&
void&CExample17Dlg::OnBnClickedSaveButton() &&
&&&&TCHAR&szFilter[]&=&_T(&文本文件(*.txt)|*.txt|Word文件(*.doc)|*.doc|所有文件(*.*)|*.*||&); &&
&&&&CFileDialog&fileDlg(FALSE,&_T(&doc&),&_T(&my&),&OFN_HIDEREADONLY&|&OFN_OVERWRITEPROMPT,&szFilter,&this); &&
&&&&CString&strFileP &&
&&&&if&(IDOK&==&fileDlg.DoModal()) &&
&&&&&&&&&&
&&&&&&&&strFilePath&=&fileDlg.GetPathName(); &&
&&&&&&&&SetDlgItemText(IDC_SAVE_EDIT,&strFilePath); &&
}&&&&&&&&&上面显示编辑框内容时,鸡啄米使用了Windows API函数SetDlgItemText,当然也可以先给编辑框关联变量,然后再使用鸡啄米在中介绍的CDialogEx::UpdateData()函数,但是鸡啄米比较习惯使用SetDlgItemText函数,感觉比较灵活。&&&&&& 5.运行此程序,在结果对话框上点&打开&按钮,显示打开文件对话框如下:&&&&&&&点&保存&按钮后,显示保存文件对话框:&&&&&&&在打开文件对话框和保存文件对话框都选择了文件路径后,主对话框如下:&&&&&& 到此,文件对话框就讲完了,是不是依然很简单?如果忘记了文件对话框类构造函数的参数意义,可以回到鸡啄米来看看或者在MSDN上查阅。
除非特别注明,文章均为原创
转载请标明本文地址:
作者:鸡啄米
&&( 21:30:18)&&( 22:3:6)&&( 20:53:3)&&( 23:49:3)&&( 21:35:2)&&( 23:14:51)&&( 20:12:32)&&( 20:5:25)&&( 22:18:12)&&( 22:15:37)
技术文章,专业文章
挺有意思的。
呵呵,来看一下。
技术基本不懂,但这并不影响我对博主的支持
看看能不能使用上。
怎样赋给edit control初始值呢?鸡啄米 于
00:32:06 回复可以用SetDlgItemText函数设置初始字符串霁筱沐 于
16:22:44 回复这些函数的说明和用法在哪有汇总版不?在MSDN中有吗?如果有的话,能给个路径吗?里面的东东太难找了。多谢楼主。
请问文中提到的设置了默认文件格式为“doc”,为什么点保存按钮的时候还是.txt呢,谢谢秦风 于
14:33:17 回复如果你想默认保存.doc文件,把.doc的设置提前;如下TCHAR szFilter[] = _T(&Word文件(*.docx)|*.docx|文本文件(*.txt)|*.txt|PDF文件(*.pdf)|*.pdf|所有文件(*.*)|*.*||&);
//我添加了一个PDF文件的格式
你好,我的编译环境也是VS2010,但是用这个CFileDialog类时,如果打开的文件是与exe同个目录就可以正常使用,否则就提示&没有找到***&,请问这是怎么回事呀```而在VC6.0下就没有这种问题```鸡啄米 于
22:11:50 回复我用CFileDialog从未遇到过这种情况,很大可能还是你代码有问题,仔细查查吧。
我已经把具体情况发你邮箱了,如果你能抽空看看非常感谢哈~~~鸡啄米 于
23:06:49 回复你的程序我看了,就是因为你用的GetFileName只获取了一个文件名,在打开的时候程序认为它在当前目录下,所以exe同目录中的文件就可以,否则就提示找不到,而GetPathName获取的是整个路径,当然就没有问题了。
问个问题。lpszDefExt我设置成了_T(&doc&),但是在保存的时候文件去掉后缀。在文件类型为txt时会保存为.txt。所有类型的时候是.doc。请问下有什么解决的好办法。
博主,请问,这个真的能保存吗?为什么我的程序运行之后,想要保存的文件没有保存到指定的路径呢?求解鸡啄米 于
21:00:48 回复保存文件需要自己实现。本文仅是给出了保存文件对话框的用法,由此对话框得到保存路径后需另写程序保存到此路径。
一直学习,呵呵,我想咨询的是添加了两个编辑框ID分别为IDC_OPEN_EDIT和IDC_SAVE_EDIT,编译时出现错误,“未定义之类的”,后来,我就又右键为编辑框增加了变量,如下: CString m_openE CString m_saveE之后,编译成功运行OK。这是我版本的问题吗?(2010VS)对于控件(这里就是编辑框)只有ID没有声明变量可以吗?,还是必须有声明,博主忘了提醒大家了呢?鸡啄米 于
21:01:26 回复控件变量不是必须添加的KH 于
11:45:05 回复我也遇到了与12楼同样的情况,是不是没有声明,我用的也是VS2010秦风 于
14:37:20 回复解决方案里有个Resource.h 打开。保存一下,新加的部分空控件,对话框之类的东东是需要在这里添加的。看看那些红线没了,保存。学习者 于
16:47:30 回复必须在最上面添加头文件:“Resource.h”才不会提示未定义的变量IDC_OPEN_EDIT
非常棒,一直想找一篇初级入门的MFC教程,可惜基本都太深。。博主写的入门刚刚好,先学会用法,再深入感觉才是正确的。
感觉这个文件对话框很好玩鸡啄米 于
22:36:01 回复感觉好玩才能学的更好,呵呵
博主很强大!!!
感谢楼主。
博主,请问如何添加代码实现真正意义上的“打开”与“关闭”?谢谢。
楼主,我想要打开的是图片文件,打开后还要对图片进行缩小最后再显示在界面上。我是初学者,请问按照上面的打开文件那样我打开图片文件后,后面该怎么办?
ON_BN_CLICKED(IDC_OPEN_BUTTON, &CExample17Dlg::OnBnClickedOpenButton)按照方法一步步来,直到添加消息处理函数时,ON_BN_CLICKED老是说未能定义标识符IDC_OPEN_BUTTON,要怎么处理这种,前面那个计算器也遇到过,但不知怎的就弄好了,求教老师akili 于
11:17:08 回复直接复制粘贴会出现这种情况,去掉空格就好
void CFileopenandsaveDlg::OnOK() { // TODO: Add extra validation here UpdateData(TRUE); CF CF sourcefile.Open(m_openfile,CFile::modeRead | CFile::shareDenyWrite); destfile.Open(m_savefile,CFile::modeWrite | CFile::shareExclusive | CFile::modeCreate); BYTE buffer[2048]; UINT dwbuf = 10; do{
dwbuf = sourcefile.Read(buffer,2048);
destfile.Write(buffer,dwbuf); }while(dwbuf != 0); sourcefile.Close(); destfile.Close(); if(dwbuf == 0){
MessageBox(&复制完成!&); } CDialog::OnOK();}TEST 于
16:04:46 回复加强版:void CFileopenandsaveDlg::OnOK() { // TODO: Add extra validation here UpdateData(TRUE); if(!m_openfile.IsEmpty() && !m_savefile.IsEmpty()){
if(GetFileAttributes(m_openfile) != -1 && GetFileAttributes(m_savefile) != -1){
CF//源文件
CF//目标文件
sourcefile.Open(m_openfile,CFile::modeRead | CFile::shareDenyWrite);
destfile.Open(m_savefile,CFile::modeWrite | CFile::shareExclusive | CFile::modeCreate);
BYTE buffer[2048];
UINT dwbuf = 10;
dwbuf = sourcefile.Read(buffer,2048);
destfile.Write(buffer,dwbuf);
}while(dwbuf != 0);
sourcefile.Close();
destfile.Close();
if(dwbuf == 0){
MessageBox(&复制完成!&);
MessageBox(&请输入合法的文件路径!!&);
MessageBox(&源文件和目标文件的路径没有填写完全!&); } //CDialog::OnOK();}
不知道博主能不能看到,“保存文件需要自己实现。本文仅是给出了保存文件对话框的用法,由此对话框得到保存路径后需另写程序保存到此路径。本文来源于鸡啄米 http://www.jizhuomi.com/ , 原文地址:http://www.jizhuomi.com/software/173.html ”可不可以教给另写程序保存到此路径,拜托大神,希望您能看到
再添加两个按钮,ID分别设为IDC_OPEN_BUTTON和IDC_SAVE_BUTTON,Caption分别设为“打开”和“保存
按钮的ID已经不再是IDOK和IDCANCEL了,怎么还是用if (IDOK == fileDlg.DoModal())
13:39:56 回复IDOK IDCANCEL 是确定于取消按钮wegen 于
20:14:39 回复if (IDOK == fileDlg.DoModal())中fileDig.DoModal()是打开的文件对话框的返回值,不是我们设置的ID了。
看到这一章,全是林子聪,我有点不太好了。如果博主还在的话,可不可以帮我解答一下这个问题http://bbs.csdn.net/topics/?page=1#post-谢谢
你好,我有两个疑问,在此一并贴上,一是打开文件对话框后内存会增加4-5k,关闭对话框后没有回落,这个应该如何处理?二是使用CDC作图,内存会一直增加,这个应该如何处理?
博主你好,很感谢你写的博文,对我很有帮助。针对文件对话框有一个问题,我要实现一个按钮控件导入CAD模型(stl文件格式)到一个界面中去,怎么可以实现已经导入了一次模型,再次导入模型不会覆盖掉之前的模型而同时显示两次导入的模型啊?我试了好多次都会覆盖掉之前的模型
感谢鸡啄米老师,给我们提供了这么好的教材,让我的学习之路轻松有趣不少,比起去图书馆找过时的书实在好太多了。如果可以的话,还请您一定继续!(有些评论真的让人觉得挺2的,老师辛辛苦苦给你写这么多还强行挑刺,虽说可能是提建议但是也起码注意一下措辞吧。)
您好,关于“lpszFileName:文件名编辑框中显示的初始文件名。如果为NULL,则不显示初始文件名。”这一句,我想请教一个问题,一般我们保存文件都会自己写文件名,如果在一开始就定义了保存的文件名称,那如何修改?如果不修改保存名称,不是会出现重名吗?
文件名过滤怎么实现呢?不是文中的后缀名过滤。我希望过滤掉一些特定文件名的文件不显示。
博主,文件怎么保存?程序里只是实现了导入保存路径,但是文件保存的功能还没有实现吧?
编辑框IDC_SAVE_BUTTON显示在保存文件对话框中选择的文件路径错了。应该是IDC_SAVE_EDIT
CFileDialog fileDlg(TRUE, _T(&txt&), NULL, 0, szFilter, this); 请问文件对话框的属性设置为0代表什么意思啦》
CFileDialog fileDlg(TRUE, _T(&txt&), NULL, 0, szFilter, this); 请问这个 0 代表什么?谢谢~
怎么才能关注你呢?
QQ或者微信怎么关注你。,。。。
你发布的MFC对我都很有用
完全随机文章拒绝访问 | www.yfvb.com | 百度云加速
请打开cookies.
此网站 (www.yfvb.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(43dd13e753e643fb-ua98).
重新安装浏览器,或使用别的浏览器拒绝访问 | www.ggdoc.com | 百度云加速
请打开cookies.
此网站 (www.ggdoc.com) 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(43dd13e7eaa64364-ua98).
重新安装浏览器,或使用别的浏览器安卓神器Xposed框架正在适配安卓6.0!
  【PConline 资讯】Xposed框架相信很多安卓玩家都听说过,这是安卓机root后当之无愧的第一神器。遗憾的是,目前Xposed框架并不兼容最新的安卓6.0,现在好消息传来了!Xposed框架正在进行适配安卓6.0的工作,目前也已经取得了一些进展。  Xposed框架在安卓平台上的一款扩展平台类App,通过Xposed框架,安卓可以安装很多功能非同寻常的特殊应用。不过,由于Xposed框架是通过修改系统文件实现相应功能的,所以对系统的匹配一向比较严格,在安卓5.0的时代开发者就花费了大量心血令Xposed兼容安卓5.0和安卓5.1。  现在,Xposed框架的开发者rovo89宣布了一条好消息,称目前Xposed框架正在适配安卓6.0,并已经取得了一些进展。根据开发者的说法,Xposed框架适配安卓6.0的难度要大于从安卓5.0升级到安卓5.1时候的适配难度,所以并不能确定兼容安卓6.0的Xposed框架何时能够发布。如果你想要第一时间获取安卓6.0版Xposed框架的消息,可以。相关阅读:学车哪家强?手机学车驾考App推介支持语音唤醒!Cortana安卓测试版更新打脸国内App?苹果第二款安卓App曝光手机为什么这么卡?系统监视器小工具&
最新资讯离线随时看
聊天吐槽赢奖品
相关软件:
大小:1.93 MB
授权:免费
大小:62.51 MB
授权:免费督促自己学习的一个平台
vc6.0 打开文件的时候出现Microsoft Visual C++:MSDEV.EXE 应用程序错误
使用过Microsoft Visual C++6.0的朋友可能有过这样的经历:用VC6.0可以新建文件和工程,也能打开工作空间,但就是不能打开文件。打开文件时会弹出MSDEV.EXE 应用程序错误的对话框。本人今天很不幸碰上了这样的遭遇。
一直都在用VC6.0写程序,虽然电脑上早就装了VS2008,偶尔也会用用,但还是用VC6.0的时间居多,没别的,习惯了。但很不幸,今天被他愚弄了一回。我日夜备战,准备了一周的报告今天就要开讲了。结果当我用VC6.0打开我的程序时,很不幸的弹出来这么个对话框
问题原因:
这是由于VC6.0与Microsoft Office 2007不兼容造成的。因为我要画流程图,所以之前下了个Microsoft Office Visio 2007,但本人比较愚钝,弄了半天才想明白。
解决方法:
(1)首先去下载一个FileTool.exe( ),下载后要先进行解压缩。方法为:双击该文件会弹出下面的对话框
指定解压文件的存放路径。然后点击Unzip就可以了。它会自动在你指定的文件夹下生成一个叫FileTool的文件。
(2)打开这个文件,它是一个C++原始文件,需要通过VC编译一下产生一个 FileTool.dll。方法为:打开你的VC6.0,然后单击工具-& 文件-&打开工作空间,选择FileTool文件下的FileTool.dsw。按F5(Build)或工具栏组建上的开始调试。它会自动编译一个 FileTool.dll的文件。这个文件存放在FileTool文件夹下的Debug文件夹下。
(3)将 FileTool.dll这个插件复制到X:\Program Files\Microsoft Visual Studio\Common\MSDev98\AddIns
(4)重新打开VC6,工具-&订制-&附加项和宏文件,选中FileTool Developer Studio Add-in即可。(英文版本为Tools-&Customize-&Add-ins and Macro Files,选中FileTool Developer Studio Add-in即可)。
此时打开VC6会有一个浮动工具栏(A O),点击A就是添加文件到工程,点击O就是打开文件。以后用这个浮动工具栏就可以了。
据说微软对于VC++6.0早已停止维护升级了,对于出现的不兼容问题已不再进行改进,而是做了一个插件进来。由此看来VC6.0已经落伍了。本人已经决定淘汰VC6.0了。建议大家更换使用VC++ .NET版本,VS2008、VS2010。
win10下如何解决VC++MSDEV.EXE的0xc0000142错误
msdev.exe 应用程序错误的解决方法
解决win10 VC++6.0 应用程序无法正常运行 0xc0000142
Visual C++6.0打开文件错误的解决办法
解决visual c++6.0中打开文件崩溃问题
VisualC++ 打开或向项目添加文件时停止响应
没有更多推荐了,

我要回帖

更多关于 vc6.0怎么打开 的文章

 

随机推荐