1、文件打开与保存

// NotePad01Dlg.cpp : implementation file
//#include "stdafx.h"
#include "NotePad01.h"
#include "NotePad01Dlg.h"#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif/
// CAboutDlg dialog used for App Aboutclass CAboutDlg : public CDialog
{
public:CAboutDlg();// Dialog Data//{{AFX_DATA(CAboutDlg)enum { IDD = IDD_ABOUTBOX };//}}AFX_DATA// ClassWizard generated virtual function overrides//{{AFX_VIRTUAL(CAboutDlg)protected:virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support//}}AFX_VIRTUAL// Implementation
protected://{{AFX_MSG(CAboutDlg)//}}AFX_MSGDECLARE_MESSAGE_MAP()
};CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{//{{AFX_DATA_INIT(CAboutDlg)//}}AFX_DATA_INIT
}void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CAboutDlg)//}}AFX_DATA_MAP
}BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)//{{AFX_MSG_MAP(CAboutDlg)// No message handlers//}}AFX_MSG_MAP
END_MESSAGE_MAP()/
// CNotePad01Dlg dialogCNotePad01Dlg::CNotePad01Dlg(CWnd* pParent /*=NULL*/): CDialog(CNotePad01Dlg::IDD, pParent)
{//{{AFX_DATA_INIT(CNotePad01Dlg)// NOTE: the ClassWizard will add member initialization here//}}AFX_DATA_INIT// Note that LoadIcon does not require a subsequent DestroyIcon in Win32m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}void CNotePad01Dlg::DoDataExchange(CDataExchange* pDX)
{CDialog::DoDataExchange(pDX);//{{AFX_DATA_MAP(CNotePad01Dlg)// NOTE: the ClassWizard will add DDX and DDV calls here//}}AFX_DATA_MAP
}BEGIN_MESSAGE_MAP(CNotePad01Dlg, CDialog)//{{AFX_MSG_MAP(CNotePad01Dlg)ON_WM_SYSCOMMAND()ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_WM_CLOSE()ON_COMMAND(ID_FILE_EXIT, OnFileExit)ON_COMMAND(ID_FILE_OPEN, OnFileOpen)ON_COMMAND(ID_FILE_SAVE, OnFileSave)//}}AFX_MSG_MAP
END_MESSAGE_MAP()/
// CNotePad01Dlg message handlersBOOL CNotePad01Dlg::OnInitDialog()
{CDialog::OnInitDialog();// Add "About..." menu item to system menu.// IDM_ABOUTBOX must be in the system command range.ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);ASSERT(IDM_ABOUTBOX < 0xF000);CMenu* pSysMenu = GetSystemMenu(FALSE);if (pSysMenu != NULL){CString strAboutMenu;strAboutMenu.LoadString(IDS_ABOUTBOX);if (!strAboutMenu.IsEmpty()){pSysMenu->AppendMenu(MF_SEPARATOR);pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);}}// Set the icon for this dialog.  The framework does this automatically//  when the application's main window is not a dialogSetIcon(m_hIcon, TRUE);            // Set big iconSetIcon(m_hIcon, FALSE);     // Set small icon// TODO: Add extra initialization herereturn TRUE;  // return TRUE  unless you set the focus to a control
}void CNotePad01Dlg::OnSysCommand(UINT nID, LPARAM lParam)
{if ((nID & 0xFFF0) == IDM_ABOUTBOX){CAboutDlg dlgAbout;dlgAbout.DoModal();}else{CDialog::OnSysCommand(nID, lParam);}
}// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.void CNotePad01Dlg::OnPaint()
{if (IsIconic()){CPaintDC dc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleint cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();}
}// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CNotePad01Dlg::OnQueryDragIcon()
{return (HCURSOR) m_hIcon;
}void CNotePad01Dlg::OnClose()
{// TODO: Add your message handler code here and/or call defaultCDialog::OnClose() ;
}void CNotePad01Dlg::OnFileExit()
{// TODO: Add your command handler code hereCDialog::OnCancel();}void CNotePad01Dlg::OnFileOpen()
{// TODO: Add your command handler code hereCFileDialog fd( TRUE, "*.txt", NULL,  OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "TEXT(*.txt)|*.txt|All Files (*.*)|*.*||",  NULL );if(IDCANCEL==fd.DoModal())return;CString szFile;szFile=fd.GetPathName();CFile file;if(!file.Open(szFile,CFile::modeReadWrite)){AfxMessageBox("文件打开失败");return;}DWORD dwLen= file.GetLength();char *pBuff=new char[dwLen+1];file.Read(pBuff,dwLen);pBuff[dwLen]=0;SetDlgItemText(IDC_EDIT1,pBuff);file.Close();delete []pBuff;}void CNotePad01Dlg::OnFileSave()
{// TODO: Add your command handler code hereCFileDialog fd( FALSE, "*.txt", NULL,  OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, "TEXT(*.txt)|*.txt|All Files (*.*)|*.*||",  NULL );if(IDCANCEL==fd.DoModal())return;CFile file;if(!file.Open(fd.GetPathName(),CFile::modeWrite|CFile::modeCreate)){AfxMessageBox("保存文件失败");return;}CWnd *pEdit=GetDlgItem(IDC_EDIT1);int nLen=pEdit->GetWindowTextLength();char *pBuff=new char[nLen+1];pEdit->GetWindowText(pBuff,nLen+1);pBuff[nLen]=0;file.Write(pBuff,nLen);file.Close();delete []pBuff;}

2、运行效果如下:

MFC中文件打开与保存相关推荐

  1. MFC——文件打开和保存对话框(CFileDialog)

    最近要做一个文件打开和保存的对话框,现将相关的代码记录如下,用以备忘! 所用控件: 2个静态标签(Static Text):用以显示功能标签: 2个文本框(Edit):用以显示打开的文件路径全名要保存 ...

  2. 如何查看linux中文件打开情况

    如何查看linux中文件打开情况 前言 我们都知道,在linux下,"一切皆文件",因此有时候查看文件的打开情况,就显得格外重要,而这里有一个命令能够在这件事上很好的帮助我们-它就 ...

  3. C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析

    C语言中文件打开模式(r/w/a/r+/w+/a+/rb/wb/ab/rb+/wb+/ab+)浅析 C语言文件打开模式浅析 在C语言的文件操作语法中,打开文件文件有以下12种模式,如下图: 打开模式 ...

  4. linux中怎么看文件的i-node,如何查看linux中文件打开情况?

    原标题:如何查看linux中文件打开情况? 本文转自公众号:编程珠玑 01 前言 我们都知道,在linux下,"一切皆文件",因此有时候查看文件的打开情况,就显得格外重要,而这里有 ...

  5. 如何重新找到在Windows Live Mail 中直接打开修改保存并且不小心关闭的文件

    今天同事发来一个方案让给改一下,我直接在Windows Live Mail把文件打开了,然后满腔热情的进行完善 工作,花了宝贵的一个半小时,大功告成直接保存关闭!悲剧了,没有保存在工作目录中,应该是保 ...

  6. C、C++和MFC中文件的操作

    对文件读写的三种方法   1.C中     FILE *pFile=fopen("1.txt","w"); fwrite(" http://www.s ...

  7. matlab存储文件对话框,Matlab 文件打开与保存对话框

    文件名处理对话框包括打开和保存时所调用的对话框,其调用函数分别是 uigetfile 和 uiputfile.通过对话框获取用户的输入,并返回路径和文件名字符串,然后对获得的数据进一步处理,打开文件或 ...

  8. c语言文件打开函数,C语言fopen函数中文件打开方式(参数值)

    满意答案 keaichengb.. 推荐于 2017.09.05 采纳率:40%    等级:12 已帮助:3704人 C语言fopen函数用于打开文件. 函数原型:FILE * fopen(cons ...

  9. python中文件打开的合法模式组合_详解python中各种文件打开模式

    在python中,总的来说有三种大的模式打开文件,分别是:a, w, r 当以a模式打开时,只能写文件,而且是在文件末尾添加内容. 当以a+模式打开时,可以写文件,也可读文件,可是在读文件的时候,会发 ...

最新文章

  1. python测试开发自学教程-【光荣之路】Python全栈测试开发课程
  2. 运行js_最新双十一喵币自动领取方法,安卓手机通过js脚本完美运行
  3. 需要支持多种操作的线段树该如何确定运算顺序?
  4. iOS - 打电话, 发短信
  5. java mac 转换 整形_JAVA的整型与字符串相互转换
  6. Jackson使用:String 与对象互转、Jackson 从 json 字符串转换出对象
  7. No module named MYSQLdb 问题解决
  8. paip.提升用户体验----置顶菜单
  9. JSP概述--JSP的起源,本质,运行原理
  10. 人生就是一个领域,一份爱,一杯茶
  11. matlab把图像白色部分变透明,怎么将PPT中的白底图片,白色部分变透明
  12. python boxplot的使用方法
  13. 为什么要学习Linux?
  14. pandas筛选数据_2_条件筛选
  15. Mask R-CNN学习笔记
  16. JAVA学习笔记——集合
  17. 20171029 勇于挑战自己
  18. 实战 本地服务器Confluence 7.13部署 一篇就够(从0开始安装配置 Debian11 + Mysql + Java)超详细
  19. Java基础学习笔记4
  20. MacBook苹果电脑绕过BootCamp安装Win10双系统

热门文章

  1. 如何 给给软件开发 添加 代理_如何与软件开发公司有效沟通
  2. 线性代数不深入,机器学习两行泪!
  3. 美团Android自动化之旅—适配渠道包
  4. Redis系列教程(八):分布式锁的由来、及Redis分布式锁的实现详解
  5. OpenStack组件——Keystone身份认证
  6. WCF系列(一)BasicHttpBinding 和 WsHttpBinding 的不同点
  7. CentOS 7 定时计划任务设置
  8. spoj839 Optimal Marks(最小割,dinic)
  9. Flash Media Server 4.5下载
  10. MemoryInjector 无痕注入