⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileexamdlg.cpp

📁 一个evc下的关于文件操作的程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}*/


/*
void CFileExamDlg::OnBtnedit() 
{
	// TODO: Add your control notification handler code here
	if(m_lststudent.IsEmpty())
	{
		AfxMessageBox(L"没有可编辑的记录!");
		return;
	}
	m_operID=1;//表示编辑操作
	SetControlEnable(true);
}
*/

/*
void CFileExamDlg::OnBtnsave() 
{
	// TODO: Add your control notification handler code here
	CStudentData studentdata;
	CFile stufile;
	UpdateData(true);
	switch(m_operID)
	{
	case 0://表示添加操作
		ZeroMemory(&studentdata,sizeof(studentdata));
        wcscpy(studentdata.xsbh,m_xsbh);
		wcscpy(studentdata.xsxm,m_xsxm);
		wcscpy(studentdata.xb,m_xsxb);
		wcscpy(studentdata.csrq,m_csrq);
		wcscpy(studentdata.bjmc,m_bjmc);
		stufile.Open(studentfilepath,CFile::modeRead|CFile::modeWrite);
		stufile.SeekToEnd();
		stufile.Write(&studentdata,sizeof(studentdata));
		stufile.Close();
		//更新内存队列
		m_lststudent.AddTail(studentdata);
		SetControlEnable(false);
		//设置指针移动按钮的有效性
		m_iCurPos=m_lststudent.GetCount()-1;
		SetNavigatorButton(m_iCurPos);
        break;
	case 1://编辑操作
        //把添加的东西写入文件
		ZeroMemory(&studentdata,sizeof(studentdata));
		wcscpy(studentdata.xsbh,m_xsbh);
		wcscpy(studentdata.xsxm,m_xsxm);
		wcscpy(studentdata.xb,m_xsxb);
		wcscpy(studentdata.csrq,m_csrq);
		wcscpy(studentdata.bjmc,m_bjmc);
		stufile.Open(studentfilepath,CFile::modeRead|CFile::modeWrite);
		stufile.Seek(sizeof(studentdata)*(m_iCurPos),CFile::begin);
		stufile.Write(&studentdata,sizeof(studentdata));
		stufile.Close();
		//更新内存队列
		m_lststudent.SetAt(m_lststudent.FindIndex(m_iCurPos),studentdata);
		SetControlEnable(false);
        SetNavigatorButton(m_iCurPos);
		break;

	}
}*/


/*
void CFileExamDlg::OnBtncancel() 
{
	// TODO: Add your control notification handler code here
	POSITION pos=m_lststudent.FindIndex(m_iCurPos);
	CStudentData studentdata=m_lststudent.GetAt(pos);
	//更新显示
	m_xsbh=studentdata.xsbh;
	m_xsxm=studentdata.xsxm;
	m_xsxb=studentdata.xb;
	m_csrq=studentdata.csrq;
	m_bjmc=studentdata.bjmc;
	UpdateData(false);
	SetControlEnable(false);
	SetNavigatorButton(m_iCurPos);
}*/


/*
void CFileExamDlg::OnDelete() 
{
	// TODO: Add your control notification handler code here
	if(m_lststudent.IsEmpty())
	{
		AfxMessageBox(L"没有可删除的记录!");
		return;
	}
	//先从队列中删除
	POSITION pos=m_lststudent.FindIndex(m_iCurPos);
	m_lststudent.RemoveAt(pos);
	if(m_iCurPos!=0)
	{
		m_iCurPos--;
	}
	//更新界面显示
	if(!m_lststudent.IsEmpty())
	{
		pos=m_lststudent.FindIndex(m_iCurPos);
		CStudentData studentdata=m_lststudent.GetAt(pos);
		//更新显示
		m_xsbh=studentdata.xsbh;
		m_xsxm=studentdata.xsxm;
		m_xsxb=studentdata.xb;
		m_csrq=studentdata.csrq;
		m_bjmc=studentdata.bjmc;
		UpdateData(false);
	}
	else
	{
       //更新显示
		m_xsbh=L"";
		m_xsxm=L"";
		m_xsxb=L"";
		m_csrq=L"";
		m_bjmc=L"";
		UpdateData(false);
	}
	SetControlEnable(false);
	SetNavigatorButton(m_iCurPos);
	//将文件重写
	CStudentData studentdata;
	CFile stufile;
	stufile.Open(studentfilepath,CFile::modeCreate|CFile::modeWrite);
    pos=m_lststudent.GetHeadPosition();
	for(int i=0;i<m_lststudent.GetCount();i++)
	{
		ZeroMemory(&studentdata,sizeof(studentdata));
		studentdata=m_lststudent.GetNext(pos);
		stufile.Write(&studentdata,sizeof(studentdata));
	}
	stufile.Close();
}*/

//控制窗体和控件大小
void CFileExamDlg::controlDlg()
{
	ShowWindow(SW_SHOWMAXIMIZED);//最大化
	CRect rect;
	GetClientRect(&rect);
	int h;
	h=rect.bottom;
	s_xsbh.MoveWindow(1,4,67,20);
	xsbh.MoveWindow(70,2,rect.right-71,20);
	s_xsxm.MoveWindow(1,26,67,20);
	xsxm.MoveWindow(70,24,rect.right-71,20);
	s_xsxb.MoveWindow(1,48,67,20);
	xsxb.MoveWindow(70,46,rect.right-71,20);
    s_csrq.MoveWindow(1,72,67,20);
	csrq.MoveWindow(70,70,rect.right-71,20);
	s_bjmc.MoveWindow(1,94,67,20);
	bjmc.MoveWindow(70,92,rect.right-71,20);
//	m_btnfirst.MoveWindow(2,h-75,rect.right/4,25);
	//	m_btnprior.MoveWindow(rect.right/4,h-75,rect.right/4,25);
	//	m_btnnext.MoveWindow(2*(rect.right/4),h-75,rect.right/4,25);
	//	m_btnlast.MoveWindow(3*(rect.right/4),h-75,rect.right/4,25);
	//	m_btnadd.MoveWindow(2,h-50,rect.right/4,25);
	//	m_btnedit.MoveWindow(rect.right/4,h-50,rect.right/4,25);
	//	m_btncancel.MoveWindow(2*(rect.right/4),h-50,rect.right/4,25);
	//	m_btnsave.MoveWindow(3*(rect.right/4),h-50,rect.right/4,25);
	//	m_delete.MoveWindow(2,h-25,rect.right/4,25);
	m_btncancel.MoveWindow(rect.right/2,h-27,rect.right/4,25);
	m_btnsave.MoveWindow(3*rect.right/4,h-27,rect.right/4,25);
}

void CFileExamDlg::OnSetfocusEdtxsbh() 
{
	// TODO: Add your control notification handler code here
	SipShowIM(SIPF_ON);
}

void CFileExamDlg::OnKillfocusEdtxsbh() 
{
	// TODO: Add your control notification handler code here

		if(!(m_operID==1||m_operID==2))	
		{
	
		UpdateData(TRUE);
		NO=m_xsbh;
		Chint hint;
		if(NO!=L"")
		{
			POSITION  pos;				
			hinttext=2;
		
			for(int i=0;i<m_lststudent.GetCount();i++)
			{
				pos=m_lststudent.FindIndex(i);    
				ZeroMemory(&studentdata,sizeof(studentdata));
				studentdata=m_lststudent.GetAt(pos);
				if(studentdata.xsbh==NO)
				{
						
						hint.DoModal(); 
						break;
				}
			}
			
		}
	
	/*
		else 
					hinttext=3;
					if(hint.DoModal()==IDOK||hint.DoModal()==IDCANCEL)
					xsbh.SetFocus();
					return;*/
	
				
		
}
		SipShowIM(SIPF_OFF);
}

void CFileExamDlg::OnKillfocusEdtxsxm() 
{
	// TODO: Add your control notification handler code here
	SipShowIM(SIPF_OFF);
}

void CFileExamDlg::OnSetfocusEdtxsxm() 
{
	// TODO: Add your control notification handler code here
	SipShowIM(SIPF_ON);
}

void CFileExamDlg::OnSetfocusEdtcsrq() 
{
	// TODO: Add your control notification handler code here
	SipShowIM(SIPF_ON);
}

void CFileExamDlg::OnKillfocusEdtcsrq() 
{
	// TODO: Add your control notification handler code here
	SipShowIM(SIPF_OFF);
}

void CFileExamDlg::OnSetfocusEdtbjmc() 
{
	// TODO: Add your control notification handler code here
	SipShowIM(SIPF_ON);
}

void CFileExamDlg::OnKillfocusEdtbjmc() 
{
	// TODO: Add your control notification handler code here
		SipShowIM(SIPF_OFF);

}

void CFileExamDlg::OnOK() 
{
	// TODO: Add extra validation here
	// btn1=1;
/*
				if(m_xsbh==L"")
						AfxMessageBox(L"学号必须输入!");*/
			
	
	CStudentData studentdata;
	CFile stufile;
	UpdateData(true);
	switch(m_operID)
	{
	case 0://表示添加操作
		ZeroMemory(&studentdata,sizeof(studentdata));
        wcscpy(studentdata.xsbh,m_xsbh);
		wcscpy(studentdata.xsxm,m_xsxm);
		wcscpy(studentdata.xb,m_xsxb);
		wcscpy(studentdata.csrq,m_csrq);
		wcscpy(studentdata.bjmc,m_bjmc);
		stufile.Open(studentfilepath,CFile::modeRead|CFile::modeWrite);
		stufile.SeekToEnd();
		stufile.Write(&studentdata,sizeof(studentdata));
		stufile.Close();
		//更新内存队列
		m_lststudent.AddTail(studentdata);
        break;
	case 1://编辑操作   
		//把添加的东西写入文件
		ZeroMemory(&studentdata,sizeof(studentdata));
		wcscpy(studentdata.xsbh,m_xsbh);
		wcscpy(studentdata.xsxm,m_xsxm);
		wcscpy(studentdata.xb,m_xsxb);
		wcscpy(studentdata.csrq,m_csrq);
		wcscpy(studentdata.bjmc,m_bjmc);
		stufile.Open(studentfilepath,CFile::modeRead|CFile::modeWrite);
		stufile.Seek(sizeof(studentdata)*(listnum),CFile::begin);
		stufile.Write(&studentdata,sizeof(studentdata));
		stufile.Close();
		//更新内存队列
		m_lststudent.SetAt(m_lststudent.FindIndex(listnum),studentdata);
		break;
	case 2://查找后的编辑
		ZeroMemory(&studentdata,sizeof(studentdata));
		wcscpy(studentdata.xsbh,m_xsbh);
		wcscpy(studentdata.xsxm,m_xsxm);
		wcscpy(studentdata.xb,m_xsxb);
		wcscpy(studentdata.csrq,m_csrq);
		wcscpy(studentdata.bjmc,m_bjmc);
		stufile.Open(studentfilepath,CFile::modeRead|CFile::modeWrite);
		stufile.Seek(sizeof(studentdata)*(findpos[listnum]),CFile::begin);
		stufile.Write(&studentdata,sizeof(studentdata));
		stufile.Close();
		//更新内存队列
		m_lststudent.SetAt(m_lststudent.FindIndex(findpos[listnum]),studentdata);
		break;

		
	}

	CDialog::OnOK();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -