菜单栏实现

https://blog.youkuaiyun.com/qq_38611124/article/details/82760622  SaveOrOpen类

文件菜单栏选项:

类向导---命令----对应的ID函数

打开文件:

void CNoteDlg::OnFileOpen()
{
	SaveOrOpen sp;
	if (IDCANCEL == sp.OpenFileDialog())
		return;
	m_Path = sp.GetPath();    //获取文件路径
	CString szData = sp.Open(m_Path);    //打开文件,并获取里面的数据
	SetDlgItemText(IDC_EDIT, szData);    //将数据设置到对应的控件
	//将获取的文件名设置为标题 
	SetWindowText(sp.GetFileName() + _T("-记事本"));   //将文件名设置到标题栏上
}

文件保存:

void CNoteDlg::OnFileSave()
{
	SaveOrOpen sp;
	CString str;
	GetDlgItemText(IDC_EDIT, str);   //从控件上获取数据
	//在选择取消时,把获取的数据重新设置窗口上
	if (IDCANCEL == sp.SaveFileDialog())
	{
		SetDlgItemText(IDC_EDIT, str);     
		return;
	}
	CString Path = sp.GetPath();    //获取保存的路径
	sp.Save(Path, str, ANSI);       //ANSI是保存为多字节文件

	//当文件修改后,点击保存后,在点击退出。不会提示
	CEdit *e = (CEdit*)GetDlgItem(IDC_EDIT);   
	e->SetModify(FALSE);
}

退出:

void CNoteDlg::OnFileExit()
{
	SendMessage(WM_CLOSE);   //菜单的关闭消息,发送给系统的关闭	
}

系统关闭:

void CNoteDlg::OnClose()
{
	SaveOrOpen sp;
	//在退出时,文件修改后没有保存,就提示保存
	CEdit *e = (CEdit*)GetDlgItem(IDC_EDIT);
	if (e->GetModify())
	{
		CString str = sp.GetPath();
		int nResult;
        //文件名为空,就创建一个新的文件,否则的话,直接保存
		if (m_Path.IsEmpty())
		{
			m_Path = _T("./无标题");
			nResult = AfxMessageBox(_T("是否保存到 无标题"), MB_OKCANCEL);
		}
		else
			nResult = AfxMessageBox(_T("是否保存到\r\n") + m_Path, MB_OKCANCEL);
		if (IDOK == nResult)
			OnFileSave();
	}
	CDialogEx::OnClose();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值