testdlg.cpp

来自「VC实现word 和ACCESS数据库的连接」· C++ 代码 · 共 718 行 · 第 1/2 页

CPP
718
字号
// TestDlg.cpp : implementation file
//

#include "stdafx.h"
#include "wordpad.h"
#include "TestDlg.h"
#include "SystemDB.h"
#include "TdlyghDB.h"
#include "afxcmn.h"
#include "DjclDB.h"
#include "DjclnounexplainDB.h"
#include "DjcljdtDB.h"
#include "TdlyghjdtDB.h"
#include "TdlyghmcjsDB.h"
#include "TdlyghlstDB.h"
//#include <afx.h>



#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTestDlg dialog


CTestDlg::CTestDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTestDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTestDlg)
	m_year2 = _T("");
	m_editcoursename = _T("");
	//}}AFX_DATA_INIT
}


void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTestDlg)
	DDX_Control(pDX, IDC_TREE_KNOWLEDGE_NODE, m_knowledgetree);
	DDX_Control(pDX, IDC_COMBO_YEAR, m_year1);
	DDX_Control(pDX, IDC_ZHUANYETYPE, m_zhuanyetype);
	DDX_Control(pDX, IDC_COURSENAME, m_coursename);
	DDX_Control(pDX, IDC_CLASSNAME, m_classname);
	DDX_Text(pDX, IDC_EDIT_YEAR, m_year2);
	DDX_Text(pDX, IDC_EDIT_COURSENAME, m_editcoursename);
	DDX_Control(pDX, IDC_LIST_TEST_CONTENT,m_listtestcontent);
	DDX_Control(pDX,IDC_LIST_TEST_CONTROL,m_TestSeleInfoListctrl);
    DDX_Control(pDX,IDC_LIST_SELEDTEST,m_listseledtest);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTestDlg, CDialog)
	//{{AFX_MSG_MAP(CTestDlg)
	ON_CBN_SELCHANGE(IDC_ZHUANYETYPE, OnSelchangeZhuanyetype)
	ON_CBN_SELCHANGE(IDC_COMBO_YEAR, OnSelchangeComboYear)
	ON_CBN_SELCHANGE(IDC_COURSENAME, OnSelchangeCoursename)
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE_KNOWLEDGE_NODE, OnSelchangedTreeKnowledgeNode)
	ON_BN_CLICKED(IDC_BUTTON_SELTEST, OnButtonSeltest)
	ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
	ON_BN_CLICKED(IDC_BUTTON_DELECT, OnButtonDelect)
	ON_BN_CLICKED(IDC_BUTTON_VIEWTEST, OnButtonViewtest)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTestDlg message handlers

void CTestDlg::OnSelchangeZhuanyetype() 
{
	int i=0;
	int len=0;
	if(m_coursename.GetCount()>0||m_coursename.GetCurSel()<0)
	{i=m_coursename.GetCurSel();
          while(len>=0)	  
		 {
		   len=m_coursename.DeleteString(i);
		   len--;
           i=m_coursename.DeleteString(len);	
		   i--;
		 }
	}
    i=0;
	len=0;
	if(m_classname.GetCount()>0||m_classname.GetCurSel()<0)
	{i=m_classname.GetCurSel();
          while(len>=0)	  
		 {
		   len=m_classname.DeleteString(i);
		   len--;
           i=m_classname.DeleteString(len);	
		   i--;
		 }
	}
   CString zhuanyetype;
	int index=m_zhuanyetype.GetCurSel();
	if (index<0) return;
    m_zhuanyetype.GetLBText(index,zhuanyetype);
	//UpdateData(FALSE);
    Readcoursenametocombo(zhuanyetype);// TODO: Add your control notification handler code here
	
}

BOOL CTestDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	Readzhuanyetypetocombo();
	Readyeartocomboyear1();
   m_TestSeleInfoListctrl.InsertColumn(0,_T("试题类型"),LVCFMT_LEFT,250,-1);
   m_TestSeleInfoListctrl.InsertColumn(1,_T("试题个数"),LVCFMT_LEFT,100,-1);
   m_TestSeleInfoListctrl.InsertColumn(2,_T("总分值"),LVCFMT_LEFT,100,-1);
   m_TestSeleInfoListctrl.InsertColumn(3,_T("难度系数"),LVCFMT_LEFT,100,-1);
   m_listseledtest.InsertColumn(0,_T("试题内容"),LVCFMT_LEFT,150,-1);
   m_listseledtest.InsertColumn(1,_T("分值"),LVCFMT_LEFT,100,-1);
   m_listseledtest.InsertColumn(2,_T("难度系数"),LVCFMT_LEFT,100,-1);
   // TODO: Add extra initialization here
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CTestDlg::writetestcontenttotestpaper(CString course)
{
	
//	CFile filelist;
//	CArchive ar(&filelist,CArchive::store);
//	ar.WriteString(course+"五侧");
}
void CTestDlg::Readcoursenametocombo(CString zhuanyetype)
{   
	int k=0;
	int j=0;

      if(!m_SystemDB.IsOpen())
       m_SystemDB.Open(AFX_DAO_USE_DEFAULT_TYPE, NULL,0 ); 
	 m_SystemDB.MoveFirst(); 
	 m_SystemDB.MoveLast();
	    int len=m_SystemDB.GetRecordCount();
	m_SystemDB.MoveFirst(); 
	for(int i=0;i<len;i++)
	{
		while(m_SystemDB.IsEOF())
			   break;
		if(zhuanyetype==m_SystemDB.m_column1)
		{
		  m_coursename.InsertString(k,m_SystemDB.m_column2);
		  k++;
		}
	    if(zhuanyetype==m_SystemDB.m_column1&&!m_SystemDB.m_column3.IsEmpty())
		{
              //classname=(CString)m_SystemDB.m_column3;
              m_classname.InsertString(j,m_SystemDB.m_column3);
			    j++;
		}
	m_SystemDB.MoveNext();
	}	
	m_SystemDB.Close();	// TODO: Add your control notification handler code here
}




void CTestDlg::Readzhuanyetypetocombo()
{ 
	if(!m_SystemDB.IsOpen())
       m_SystemDB.Open(AFX_DAO_USE_DEFAULT_TYPE, NULL,0 );
        m_SystemDB.MoveFirst();
		m_SystemDB.MoveLast();
	    int len=m_SystemDB.GetRecordCount();
        m_SystemDB.MoveFirst();
      int k=0;	
       CString zhuanyetpye;
	  BOOL isADD=FALSE; 
	  for(int i=0;i<len;i++)
		{  
		   while(m_SystemDB.IsEOF())
			   break;
			if(!isADD) 
			{ 
				m_zhuanyetype.InsertString(k,m_SystemDB.m_column1);
				k++;
                zhuanyetpye=m_SystemDB.m_column1;
			}
	        m_SystemDB.MoveNext();
			{if(zhuanyetpye==m_SystemDB.m_column1)
			    isADD=TRUE;
		     else isADD=FALSE;
			}
	  }
	m_SystemDB.Close();
}


	

void CTestDlg::OnSelchangeComboYear() 
{
	int i=m_year1.GetCurSel();
	int j=m_year1.GetCount();
	i++;
	if(i<j)
	{
		m_year1.GetLBText(i,m_year2);
	    UpdateData(FALSE);
	}



	// TODO: Add your control notification handler code here
	
}
void CTestDlg::Readyeartocomboyear1()
{	
	m_year1.InsertString(0,_T("一九九九"));
    m_year1.InsertString(1,_T("二零零零"));
    m_year1.InsertString(2,_T("二零零一"));
       m_year1.InsertString(3,_T("二零零二"));
m_year1.InsertString(4,_T("二零零三"));
m_year1.InsertString(5,_T("二零零四"));
m_year1.InsertString(6,_T("二零零五"));
}

void CTestDlg::OnSelchangeCoursename() 
{

	int i=m_coursename.GetCurSel();
	m_coursename.GetLBText(i,m_editcoursename);
	m_coursename.GetLBText(i,coursename);
    if(!m_knowledgetree.DeleteAllItems())
         m_knowledgetree.DeleteAllItems(); 
	Treeconstruct(coursename);// TODO: Add your control notification handler code here
	
}
void CTestDlg::Treeconstruct(CString course)
{
	CString knowledgename;
    int iItem;
	HTREEITEM m_rgtItem1;
    HTREEITEM m_rgtItem2;
if(course==_T("土地利用规划"))
	{
	
	    if(!m_TdlyghDB.IsOpen())
          m_TdlyghDB.Open(AFX_DAO_USE_DEFAULT_TYPE,NULL,0);
           m_TdlyghDB.MoveFirst();
	      m_TdlyghDB.MoveLast();
          int len=m_TdlyghDB.GetRecordCount();
         m_TdlyghDB.MoveFirst();
          for(iItem=0;iItem<len;iItem++)
		  {
	            while(m_TdlyghDB.IsEOF())  break;
                knowledgename=m_TdlyghDB.m_column2;
		        if(iItem==0)
		        m_rgtItem1=m_knowledgetree.InsertItem(knowledgename,TVI_ROOT,TVI_LAST);
		        if(iItem!=0)
					m_rgtItem1=m_knowledgetree.InsertItem(knowledgename,TVI_ROOT,m_rgtItem1);
				m_rgtItem2=m_knowledgetree.InsertItem(_T("选择题"),m_rgtItem1,TVI_LAST);
				m_rgtItem2=m_knowledgetree.InsertItem(_T("填空题"),m_rgtItem1,m_rgtItem2);
				m_rgtItem2=m_knowledgetree.InsertItem(_T("判断题"),m_rgtItem1,m_rgtItem2);
		        m_rgtItem2=m_knowledgetree.InsertItem(_T("名词解释题"),m_rgtItem1,m_rgtItem2);
		        m_rgtItem2=m_knowledgetree.InsertItem(_T("简答题"),m_rgtItem1,m_rgtItem2);
		        m_rgtItem2=m_knowledgetree.InsertItem(_T("计算题"),m_rgtItem1,m_rgtItem2);
		        m_rgtItem2=m_knowledgetree.InsertItem(_T("论述题"),m_rgtItem1,m_rgtItem2);
                m_TdlyghDB.MoveNext();
		  }
   m_TdlyghDB.Close();
	}

if(course==_T("地籍测量"))
	{
	   
	if(!m_DjclDB.IsOpen())
          m_DjclDB.Open(AFX_DAO_USE_DEFAULT_TYPE,NULL,0);
           m_DjclDB.MoveFirst();
	      m_DjclDB.MoveLast();
          int len=m_DjclDB.GetRecordCount();
         m_DjclDB.MoveFirst();
	  for(iItem=0;iItem<len;iItem++)
	  {
	    while(m_DjclDB.IsEOF())  break;
        knowledgename=m_DjclDB.m_column2;
		if(iItem==0)
		m_rgtItem1=m_knowledgetree.InsertItem(knowledgename,TVI_ROOT,TVI_LAST);
		if(iItem!=0)
        m_rgtItem1=m_knowledgetree.InsertItem(knowledgename,TVI_ROOT,m_rgtItem1);
        m_rgtItem2=m_knowledgetree.InsertItem(_T("选择题"),m_rgtItem1,TVI_LAST);
        m_rgtItem2=m_knowledgetree.InsertItem(_T("填空题"),m_rgtItem1,m_rgtItem2);
        m_rgtItem2=m_knowledgetree.InsertItem(_T("判断题"),m_rgtItem1,m_rgtItem2);
		m_rgtItem2=m_knowledgetree.InsertItem(_T("名词解释题"),m_rgtItem1,m_rgtItem2);
		m_rgtItem2=m_knowledgetree.InsertItem(_T("简答题"),m_rgtItem1,m_rgtItem2);
		m_rgtItem2=m_knowledgetree.InsertItem(_T("计算题"),m_rgtItem1,m_rgtItem2);
		m_rgtItem2=m_knowledgetree.InsertItem(_T("论述题"),m_rgtItem1,m_rgtItem2);
        m_DjclDB.MoveNext();
	  }
   m_DjclDB.Close();
  }
}


	
	
	

	



void CTestDlg::OnSelchangedTreeKnowledgeNode(NMHDR* pNMHDR, LRESULT* pResult) 
{
	HTREEITEM  m_rgtItem1;
    HTREEITEM  m_rgtItem2;
	int j=m_coursename.GetCurSel();
        m_coursename.GetLBText(j,coursename);

	int len=m_listtestcontent.GetCount();
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;

	m_rgtItem2=m_knowledgetree.GetSelectedItem();
	m_rgtItem1=m_knowledgetree.GetParentItem(m_rgtItem2); 
	tixing=m_knowledgetree.GetItemText(m_rgtItem2);  


int i=m_listtestcontent.GetCount();
i--;

          while(len>=0)	  
		 {
		   len=m_listtestcontent.DeleteString(i);
		   len--;
           i=m_listtestcontent.DeleteString(len);	
		   i--;
		 }
    Readtestcontenttolistbox();
		
		// TODO: Add your control notification handler code here
	
	*pResult = 0;
}


void CTestDlg::Readtestcontenttolistbox()
{
    HTREEITEM  m_rgtItem1;
    HTREEITEM  m_rgtItem2;
	CString zhishidian;
   CString zhishidianID;
    int j=0;
	m_rgtItem2=m_knowledgetree.GetSelectedItem();
	m_rgtItem1=m_knowledgetree.GetParentItem(m_rgtItem2); 
//	tixing=m_knowledgetree.GetItemText(m_rgtItem2);  
	zhishidian=m_knowledgetree.GetItemText(m_rgtItem1);
//m_IndexArraryOfUnselMcjs.RemoveAll();
	if(tixing!=zhishidian)

⌨️ 快捷键说明

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