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

📄 yangdialog.cpp

📁 这是目前正应用于辽宁省很多县级中学的试题库系统源代码
💻 CPP
字号:
// YangDialog.cpp : implementation file
//

#include "stdafx.h"
#include "TestPaper.h"
#include "YangDialog.h"
#include "MainFrm.h"
#include "XinDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CYangDialog dialog


CYangDialog::CYangDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CYangDialog::IDD, pParent)
{
	//{{AFX_DATA_INIT(CYangDialog)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CYangDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CYangDialog)
	DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CYangDialog, CDialog)
	//{{AFX_MSG_MAP(CYangDialog)
	ON_COMMAND(ID_CSLR, OnCslr)
	ON_COMMAND(ID_CSQS, OnCsqs)
	ON_COMMAND(ID_CSSC, OnCssc)
	ON_COMMAND(ID_CSXG, OnCsxg)
	ON_WM_PAINT()
	ON_COMMAND(ID_ZUILR, OnZuilr)
	//}}AFX_MSG_MAP
	ON_NOTIFY(NM_CLICK, IDC_LIST1, OnYangClickList)
	ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnYangDblclickList)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CYangDialog message handlers

BOOL CYangDialog::OnInitDialog() 
{
	CDialog::OnInitDialog();
	// TODO: Add extra initialization here
	CMainFrame* pMainFrame=(CMainFrame*) AfxGetMainWnd();
	HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON15);
	this->SendMessage(WM_SETICON,ICON_BIG,(LPARAM)hIcon);
	CRect rect;
	GetClientRect(rect);
	m_ListCtrl.SetBkColor(RGB(192,192,192));
	m_ListCtrl.SetTextColor(RGB(0,0,0));
	m_ListCtrl.SetTextBkColor(RGB(192,192,192));
	m_ListCtrl.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP);
    int Listwid=rect.right-rect.left;
    m_ListCtrl.InsertColumn(0,_T("编号"),LVCFMT_CENTER,Listwid/11);
	m_ListCtrl.InsertColumn(1,_T("科目"),LVCFMT_CENTER,Listwid/11);
    m_ListCtrl.InsertColumn(2,_T("适用对象"),LVCFMT_CENTER,Listwid/11);
    m_ListCtrl.InsertColumn(3,_T("难度级别"),LVCFMT_CENTER,Listwid/11);
	m_ListCtrl.InsertColumn(4,_T("单选题数量"),LVCFMT_CENTER,Listwid/11);
	m_ListCtrl.InsertColumn(5,_T("判断题数量"),LVCFMT_CENTER,Listwid/11);
	m_ListCtrl.InsertColumn(6,_T("单选题总分值"),LVCFMT_CENTER,Listwid/11);
    m_ListCtrl.InsertColumn(7,_T("判断题总分值"),LVCFMT_CENTER,Listwid/11);
    m_ListCtrl.InsertColumn(8,_T("考试时间"),LVCFMT_CENTER,Listwid/11);
	m_ListCtrl.InsertColumn(9,_T("试卷名称"),LVCFMT_CENTER,Listwid/11);
	m_ListCtrl.InsertColumn(10,_T("考试印章"),LVCFMT_CENTER,Listwid/11);
    YangData();	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}
void CYangDialog::YangData()
{
	CMainFrame* pMainFrame=(CMainFrame*) AfxGetMainWnd();
	m_ListCtrl.DeleteAllItems();
	
	CString strSQL;
	strSQL.Empty();
	strSQL.Format("select * from 试卷参数设置");
    try
	{
		if(pMainFrame->m_yangrecordset.IsOpen())
		{
			pMainFrame->m_yangrecordset.Close();
            pMainFrame->m_yangrecordset.Open(CRecordset::dynaset,strSQL);
		}
		else
		{
 			pMainFrame->m_yangrecordset.Open(CRecordset::dynaset,strSQL);
		}
	}
	catch(...)
	{
		AfxMessageBox("cann't open table!");
		return;
	}
	CDBVariant OleVar;
	CString buf;
	int i=0;
	if(pMainFrame->m_yangrecordset.GetRecordCount()!=0)
	{
		pMainFrame->m_yangrecordset.MoveFirst();
	}
	while(!pMainFrame->m_yangrecordset.IsEOF())
	{
		int temp=0;
		pMainFrame->m_yangrecordset.GetFieldValue(temp,OleVar);
		buf.Format("%d",OleVar.m_iVal);
		m_ListCtrl.InsertItem(i,"");
		m_ListCtrl.SetItemText(i,0,buf);

		pMainFrame->m_yangrecordset.GetFieldValue(1,OleVar);
		m_ListCtrl.SetItemText(i,1,OleVar.m_pstring->GetBuffer(1));

		pMainFrame->m_yangrecordset.GetFieldValue(2,OleVar);
		m_ListCtrl.SetItemText(i,2,OleVar.m_pstring->GetBuffer(1));

        

        pMainFrame->m_yangrecordset.GetFieldValue(3,OleVar);
		buf.Format("%d",OleVar.m_iVal);
		m_ListCtrl.SetItemText(i,3,buf);

		pMainFrame->m_yangrecordset.GetFieldValue(4,OleVar);
		buf.Format("%d",OleVar.m_iVal);
		m_ListCtrl.SetItemText(i,4,buf);

		pMainFrame->m_yangrecordset.GetFieldValue(5,OleVar);
		buf.Format("%d",OleVar.m_iVal);
		m_ListCtrl.SetItemText(i,5,buf);

		pMainFrame->m_yangrecordset.GetFieldValue(6,OleVar);
        double kkk=OleVar.m_dblVal;
		buf.Format("%.1f",kkk);
		m_ListCtrl.SetItemText(i,6,buf);



		pMainFrame->m_yangrecordset.GetFieldValue(7,OleVar);
        kkk=OleVar.m_dblVal;
		buf.Format("%.1f",kkk);
		m_ListCtrl.SetItemText(i,7,buf);

		pMainFrame->m_yangrecordset.GetFieldValue(8,OleVar);
		buf.Format("%d",OleVar.m_iVal);
		m_ListCtrl.SetItemText(i,8,buf);

		pMainFrame->m_yangrecordset.GetFieldValue(9,OleVar);
		m_ListCtrl.SetItemText(i,9,OleVar.m_pstring->GetBuffer(1));

	    pMainFrame->m_yangrecordset.GetFieldValue(10,OleVar);
		m_ListCtrl.SetItemText(i,10,OleVar.m_pstring->GetBuffer(1));


		pMainFrame->m_yangrecordset.MoveNext();
		i++;
	}
	

}
void CYangDialog::OnYangClickList(NMHDR* pNMHDR, LRESULT* pResult) //列表单击函数
{
	// TODO: Add your control notification handler code here
	CPoint cMousePoint;// 鼠标位置
	GetCursorPos(&cMousePoint);// 屏幕的鼠标位置,并非窗口的
    POINT  cListOriginPoint;
	CRect  cListWindowRect;
	UINT uFlags;
	m_ListCtrl.GetWindowRect(&cListWindowRect);
	cListOriginPoint = cListWindowRect.TopLeft();
	CPoint cTestPoint(cMousePoint.x - cListOriginPoint.x,cMousePoint.y - cListOriginPoint.y);
    Myitem = m_ListCtrl.HitTest(cTestPoint,&uFlags);
	m_ListCtrl.SetHotItem(Myitem);
	*pResult = 0;
	
}

void CYangDialog::OnYangDblclickList(NMHDR* pNMHDR, LRESULT* pResult) //列表右键单击函数
{
	CMainFrame* pMainFrame=(CMainFrame*) AfxGetMainWnd();
	CPoint cMousePoint;// 鼠标位置
	GetCursorPos(&cMousePoint);// 屏幕的鼠标位置,并非窗口的
    POINT  cListOriginPoint;
	CRect  cListWindowRect;
	UINT uFlags;
	m_ListCtrl.GetWindowRect(&cListWindowRect);
	cListOriginPoint = cListWindowRect.TopLeft();
	CPoint cTestPoint(cMousePoint.x - cListOriginPoint.x,cMousePoint.y - cListOriginPoint.y);
	if(pMainFrame->m_yangrecordset.GetRecordCount()==0)
	{
		ClientToScreen(&cTestPoint);
		CMenu* pMenu=new CMenu;
		pMenu->LoadMenu(IDR_MENU5);
		CMenu* pFileMenu=pMenu->GetSubMenu(0);
		pFileMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,cTestPoint.x,cTestPoint.y,this);
		delete pMenu;


	}

	
	else
	{
	int nItem = m_ListCtrl.HitTest(cTestPoint,&uFlags);
	if(nItem>=0)
	{
		ClientToScreen(&cTestPoint);
		CMenu* pMenu=new CMenu;
		pMenu->LoadMenu(IDR_MENU4);
		CMenu* pFileMenu=pMenu->GetSubMenu(0);
		pFileMenu->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,cTestPoint.x,cTestPoint.y,this);
		delete pMenu;
	}
	}
}


void CYangDialog::OnCslr() 
{
	// TODO: Add your command handler code here
	this->ShowWindow(SW_HIDE);
	CMainFrame* pMainFrame=(CMainFrame*) AfxGetMainWnd();
	CXinDialog xindlg1;
	xindlg1.DoModal();
	
}

void CYangDialog::OnCsqs() 
{
	// TODO: Add your command handler code here
	CMainFrame* pMainFrame=(CMainFrame*) AfxGetMainWnd();
	if(pMainFrame->m_yangrecordset.GetRecordCount()==0)
	{
		AfxMessageBox("目前无记录!");
		return;
	}
	if(!pMainFrame->m_yangrecordset.CanUpdate())
        return;
    if(AfxMessageBox("确实需要删除全部试卷参数吗?",MB_YESNO)==IDYES)
	{
	    CString strSQL;
   	    strSQL.Empty();
	    strSQL.Format("delete from 试卷参数设置");
		pMainFrame->m_database.ExecuteSQL(strSQL);
		YangData();
	}
	
}

void CYangDialog::OnCssc() 
{
	// TODO: Add your command handler code here
	CMainFrame* pMainFrame=(CMainFrame*) AfxGetMainWnd();
	int i=m_ListCtrl.GetHotItem();
	CString strSQL;
	if(pMainFrame->m_yangrecordset.GetRecordCount()==0)
	{
		AfxMessageBox("目前无记录!");
		return;
	} 
	if(!pMainFrame->m_yangrecordset.CanUpdate())
         return;
	if(i==-1)
	{
		AfxMessageBox("请选择删除项!");
		return;
	}
	else
	{
	    if(AfxMessageBox("确实需要删除该项试卷参数吗?",MB_YESNO)==IDYES)
		{
	    CString strSQL;
   	    strSQL.Empty();
	    int keyid=atoi(m_ListCtrl.GetItemText(i,0));
	    strSQL.Format("delete from 试卷参数设置 where 编号=%d",keyid);
		pMainFrame->m_database.ExecuteSQL(strSQL);
		YangData();
		}
		
		
	}


	
}

void CYangDialog::OnCsxg() 
{
	// TODO: Add your command handler code here
	CMainFrame* pMainFrame=(CMainFrame*) AfxGetMainWnd();
	int i=m_ListCtrl.GetHotItem();
	if(pMainFrame->m_yangrecordset.GetRecordCount()==0)
	{
		AfxMessageBox("目前无记录!");
		return;
	}
	if(!pMainFrame->m_yangrecordset.CanUpdate())
         return;
	if(i==-1)
	{
		AfxMessageBox("请选择列表项!");
		return;
	}
	this->ShowWindow(SW_HIDE);
	CXinDialog xindlg2;
	xindlg2.DoModal();
}

void CYangDialog::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	CRect rect;
	GetClientRect(rect);
	m_ListCtrl.MoveWindow(rect);
	int Listwid=rect.right-rect.left;
    m_ListCtrl.SetColumnWidth(0,Listwid/11);
	m_ListCtrl.SetColumnWidth(1,Listwid/11);
	m_ListCtrl.SetColumnWidth(2,Listwid/11);
	m_ListCtrl.SetColumnWidth(3,Listwid/11);
	m_ListCtrl.SetColumnWidth(4,Listwid/11);
	m_ListCtrl.SetColumnWidth(5,Listwid/11);
	m_ListCtrl.SetColumnWidth(6,Listwid/11);
	m_ListCtrl.SetColumnWidth(7,Listwid/11);
	m_ListCtrl.SetColumnWidth(8,Listwid/11);
	m_ListCtrl.SetColumnWidth(9,Listwid/11);
	m_ListCtrl.SetColumnWidth(10,Listwid/11);
	
	// Do not call CDialog::OnPaint() for painting messages
}

void CYangDialog::OnZuilr() 
{
	// TODO: Add your command handler code here
	this->ShowWindow(SW_HIDE);
	CMainFrame* pMainFrame=(CMainFrame*) AfxGetMainWnd();
	CXinDialog xindlg1;
	xindlg1.DoModal();
	
}

⌨️ 快捷键说明

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