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

📄 tabpageview.cpp

📁 此程序用到了,ADO连接ACCESS数据库,切分窗口,以及不同视图之间进行通信.List Control和Tree Control,用户UI线程等技术.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// TabPageView.cpp : implementation file
//

#include "stdafx.h"
#include "ChooseBookTool.h"
#include "TabPageView.h"

#include "BookClass.h"
#include "ADOConnection/ADOConn.h"
#include "MainFrm.h"
#include "BookListView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CTabPageView
//列表控件的列
static int k = 0;
static CString ListColumn[7] = {"BookID","ISBN","图书书名","出版社名称","作者",\
"出版日期","所属类别"};
//圣典图书分类
//文学类
static CString Literature[12] = {"小说","散文","诗歌","戏曲文学","纪实文学","作品集","人物传记",\
"民间文学","少数民族文学","宗教文学","世界文学","文学研究"};
//艺术类
static CString art[12] = {"书法篆刻","中外绘画","建筑艺术","摄影摄像","工艺美术","雕塑","舞蹈","戏剧",\
	"剧本","电影电视","音乐","艺术理论"};
//经济类
static CString Economic[9] = {"贸易经济","财政/金融","旅游经济","邮电经济","交通运输经济","农业经济",\
	"经济计划与管理","经济理论","世界经济"};
//工商管理类
static CString Industry[7] = {"企业管理","行业经济","信息产业经济","管理学","人才学","会计","审计"};

//计算机或网络
static CString Computer[5] = {"数据库与操作系统","计算机应用","计算机网络","计算机硬件","计算机科学理论"};

//外语类
static CString English[6] = {"口语与听力","英语工具书","考试用书","英语学习","英语读物","其他外语"};

//教育体育
static CString Education[8] = {"教育理论与现状","思想政治教育","电话教育","学校管理","高等教育","师范教育","社会教育","体育"};

//文化传媒
static CString Culture[3] = {"语言","文化","知识信息与传媒"};

//自然科学
static CString Science[15] = {"天文学","气象学","测绘学","地球科学","科学研究","自然科学总论",\
	"非线性科学","系统科学","高等化学","高等物理","高等数学","力学","环境科学",\
	"生物科学","晶体学"};

//电工电子
static CString Electrician[3] = {"电工技术","电子技术","自动化技术"};

//工业技术
static CString IndustryTechnology[13] = {"技术基础知识","造纸印刷工业","轻工业手工业","矿业工业","石油天然气工业",\
"能源动力工业","原子能技术","化学工业","冶金工业","金属工艺","仪器仪表","武器工业","航空航天"};

//建筑/水利
static CString Building[2] = {"建筑科学","水利工程"};

//医学/保建
static CString Medicine[16] = {"预防医学/卫生学","中国医学","基础医学","临床医学","内科","外科","妇产科","儿科","肿瘤科","神经学","皮肤科",\
	"耳鼻口腔科","眼科","特种医学","药学","外国医学"};
//农林科学
static CString Auriculture[8] = {"农业基础与工程","农艺","植物保护","农作物","园艺","林业","畜牧业","水产业"};

//政治军事
static CString Politics[6] = {"党史党建","外交国际关系","世界政治","中国政治","中外战争纪实","军事"};

//法律
static CString Law[4] = {"法律","中国法律","外国法律","国际法律"};

//历史
static CString History[4] = {"中国历史","文物考古","世界历史","史学理论"};

//交通/旅游
static CString Traffic[3] = {"交通运输","旅游地理","风俗习惯"};

//哲学/社会
static CString Philosophy[14] = {"哲学理论","外国哲学","中国哲学","思维哲学","逻辑哲学","伦理学","美学","心理学","宗教","领袖传记",\
"领袖著作","社会科学总论","统记学","社会人口"};
//家庭/生活
static CString Family[13] = {"服装裁剪","纺织技术","家庭装饰装修","美食/餐饮","食品加工","工艺美术","家用电器","五金制品","文体家庭用品","家务","美容","手工美术","家具制作"};

//工具书
static CString ToolBook[7] = {"丛书","百科全书","辞典","论文集","年鉴","期刊","文摘/索引"};
//基础教育
static CString PrimaryEducation[4] = {"学前教育","初等教育","中等教育","儿童文学"};
//属性页选项
static CString TabPage[2] = {"目录","查找"};
static int i=0;
static CBookClass SDClass[] = {CBookClass("文学",Literature,12),CBookClass("艺术",art,12),CBookClass("经济",Economic,9),CBookClass("工商管理",Industry,7),\
CBookClass("计算机/网络",Computer,5),CBookClass("外语",English,6),CBookClass("教育/体育",Education,8),CBookClass("文化传媒",Culture,3),CBookClass("自然科学",Science,15),\
CBookClass("电工电子",Electrician,3),CBookClass("工业技术",IndustryTechnology,13),CBookClass("建筑/水利",Building,2),CBookClass("医学保健",Medicine,16),\
CBookClass("农林科学",Auriculture,8),CBookClass("政治/军事",Politics,6),CBookClass("法律",Law,4),CBookClass("历史",History,4),\
CBookClass("交通/旅游",Traffic,3),CBookClass("哲学社会",Philosophy,14),CBookClass("家庭生活",Family,13),\
CBookClass("工具书",ToolBook,7),CBookClass("基础教育",PrimaryEducation,4)};

IMPLEMENT_DYNCREATE(CTabPageView, CFormView)

CTabPageView::CTabPageView()
	: CFormView(CTabPageView::IDD)
{
	//{{AFX_DATA_INIT(CTabPageView)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	strItemDate = _T("");
	m_pRunDlg = new CWaitDlg(this);
	m_pRunDlg->Create();
}

CTabPageView::~CTabPageView()
{
	m_pRunDlg->DestroyWindow();
	delete m_pRunDlg;
}

void CTabPageView::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CTabPageView)
	DDX_Control(pDX, IDC_RADIO1, m_CtrRadio);
	DDX_Control(pDX, IDC_CHECK_EQUAL, m_CtrCheck);
	DDX_Control(pDX, IDC_EDIT_CONDITION, m_CtrEditCondition);
	DDX_Control(pDX, IDC_LIST_RESULT, m_CtrListResult);
	DDX_Control(pDX, IDC_TAB_CHOOSEBOOK, m_CtrChooseBook);
	DDX_Control(pDX, IDC_TREE_BOOKCLASS, m_CtrBookClass);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CTabPageView, CFormView)
	//{{AFX_MSG_MAP(CTabPageView)
	ON_WM_PAINT()
	ON_WM_WINDOWPOSCHANGING()
	ON_NOTIFY(TCN_SELCHANGE, IDC_TAB_CHOOSEBOOK, OnSelchangeTabChoosebook)
	ON_WM_CONTEXTMENU()
	ON_COMMAND(ID_TREERIGHT_ADD, OnTreerightAdd)
	ON_BN_CLICKED(IDC_BUTTON_SELECT, OnButtonSelect)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CTabPageView diagnostics

#ifdef _DEBUG
void CTabPageView::AssertValid() const
{
	CFormView::AssertValid();
}

void CTabPageView::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CTabPageView message handlers

/*void CTabPageView::OnOK() 
{
	// TODO: Add your control notification handler code here
	
}*/

void CTabPageView::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();
	
	// TODO: Add your specialized code here and/or call the base class
	HICON hicon[2];
	m_ImageList.Create(16,16,TRUE,2,2);
	hicon[0] = AfxGetApp()->LoadIcon(IDR_FOLDER);
	hicon[1] = AfxGetApp()->LoadIcon(IDR_BOOKLIST);
	for (int n=0;n<8;n++)
	{
		m_ImageList.Add(hicon[n]);
	}
	m_ImageList.Add(AfxGetApp()->LoadIcon(IDR_BOOKLIST));
	m_CtrBookClass.SetImageList(&m_ImageList,LVSIL_NORMAL);
	//初使化时隐藏第二页的控件
		GetDlgItem(IDC_STATIC_FILED)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_RADIO1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_RADIO2)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_RADIO3)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_RADIO4)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_EDIT_CONDITION)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_BUTTON_SELECT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_LIST_RESULT)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_CHECK_EQUAL)->ShowWindow(SW_HIDE);
	InitListResult();
	AddTabPage();
	CreateBookTree();
}

void CTabPageView::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	CRect Tree_Rect;
	CRect rtRect;
	int cx=::GetSystemMetrics(SM_CXSCREEN);
    int cy=::GetSystemMetrics(SM_CYSCREEN);
	int btttonDis;
	GetWindowRect(&TabPage_Rect);
	ScreenToClient(&TabPage_Rect);
	GetDlgItem(IDC_TAB_CHOOSEBOOK)->MoveWindow(TabPage_Rect);
	//得到检查框的位置
	GetDlgItem(IDC_CHECK_EQUAL)->GetWindowRect(&Check_Rect);
	ScreenToClient(&Check_Rect);
	btttonDis = TabPage_Rect.bottom - Check_Rect.bottom;
	GetDlgItem(IDC_CHECK_EQUAL)->MoveWindow(CRect(Check_Rect.left,TabPage_Rect.bottom-Check_Rect.Height()-10,
		Check_Rect.right,TabPage_Rect.bottom-10));
	GetDlgItem(IDC_CHECK_EQUAL)->GetWindowRect(&Check_Rect);
	ScreenToClient(&Check_Rect);
	//改变树型控件的大小
	GetDlgItem(IDC_TREE_BOOKCLASS)->GetWindowRect(&Tree_Rect);
	ScreenToClient(&Tree_Rect);
	GetDlgItem(IDC_TREE_BOOKCLASS)->MoveWindow(CRect(Tree_Rect.left,Tree_Rect.top,
		TabPage_Rect.right-10,
		TabPage_Rect.bottom-10));
	//改变编辑框的和按钮的大小
	//得到编辑框的大小
	GetDlgItem(IDC_EDIT_CONDITION)->GetWindowRect(&Edit_Rect);
	ScreenToClient(&Edit_Rect);
	//得到按钮的大小
	GetDlgItem(IDC_BUTTON_SELECT)->GetWindowRect(&Button_Rect);
	ScreenToClient(&Button_Rect);
	//移动按钮的位置
	GetDlgItem(IDC_BUTTON_SELECT)->MoveWindow(CRect(TabPage_Rect.right-Button_Rect.Width()-10,
		Button_Rect.top,TabPage_Rect.right-10,Button_Rect.bottom));

	//再次得到按钮的位置
	GetDlgItem(IDC_BUTTON_SELECT)->GetWindowRect(&Button_Rect);
	//转换成客户区坐标
	ScreenToClient(&Button_Rect);
	//移动编辑框的位置

⌨️ 快捷键说明

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