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 + -
显示快捷键?