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

📄 daoworkdlg.cpp

📁 数据库程序的作业
💻 CPP
📖 第 1 页 / 共 3 页
字号:
// DaoWorkDlg.cpp : implementation file
//

#include "stdafx.h"
#include "DaoWork.h"
#include "DaoWorkDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDaoWorkDlg dialog

CDaoWorkDlg::CDaoWorkDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CDaoWorkDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CDaoWorkDlg)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	bError = FALSE;
	bDraw = FALSE;
	x = NULL;
	y = NULL;
}

void CDaoWorkDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CDaoWorkDlg)
	DDX_Control(pDX, IDC_COMBO_SAMPLE2, m_sample2);
	DDX_Control(pDX, IDC_COMBO_SAMPLE1, m_sample1);
	DDX_Control(pDX, IDC_COMBO_INSTRUMENT, m_instrument);
	DDX_Control(pDX, IDC_COMBO_CUSTOMERUNITS, m_customerunits);
	DDX_Control(pDX, IDC_COMBO_CUSTOMER, m_customer);
	DDX_Control(pDX, IDC_TREE1, m_tree);
	DDX_Control(pDX, IDC_LIST1, m_list);	
	DDX_Control(pDX, IDC_TAB1, m_tab1);
	DDX_Control(pDX, IDC_TAB2, m_tab2);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CDaoWorkDlg, CDialog)
	//{{AFX_MSG_MAP(CDaoWorkDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_NOTIFY(TVN_SELCHANGED, IDC_TREE1, OnSelchangedTree1)
	ON_NOTIFY(TCN_SELCHANGE, IDC_TAB1, OnSelchangeTab1)
	ON_NOTIFY(TCN_SELCHANGE, IDC_TAB2, OnSelchangeTab2)
	ON_COMMAND(ID_DATABASE_LINK, OnDatabaseLink)
	ON_BN_CLICKED(IDC_BUTTON_CUSTOMERUNITS, OnButtonCustomerunits)
	ON_BN_CLICKED(IDC_BUTTON_CUSTOMER, OnButtonCustomer)
	ON_BN_CLICKED(IDC_BUTTON_SAMPLE1, OnButtonSample1)
	ON_BN_CLICKED(IDC_BUTTON_SAMPLE2INSTRUMENT, OnButtonSample2instrument)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDaoWorkDlg message handlers

BOOL CDaoWorkDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	
	//TableCtrl Setup ;
	//
	TCITEM tcItem1;
	tcItem1.mask = TCIF_TEXT;
	tcItem1.pszText = _T("表");
	m_tab1.InsertItem(0, &tcItem1);

	tcItem1.pszText = _T("查询");
	m_tab1.InsertItem(1, &tcItem1);

	tcItem1.pszText = _T("数据");
	m_tab2.InsertItem(0, &tcItem1);

	tcItem1.pszText = _T("拟合");
	m_tab2.InsertItem(1, &tcItem1);

	m_tab1.SetCurSel(0);
	m_tab2.SetCurSel(0);

	m_tree.ShowWindow(SW_SHOW);

	m_customerunits.ShowWindow(SW_HIDE);
	GetDlgItem(IDC_BUTTON_CUSTOMERUNITS)->ShowWindow(SW_HIDE);
	
	m_customer.ShowWindow(SW_HIDE);
	GetDlgItem(IDC_BUTTON_CUSTOMER)->ShowWindow(SW_HIDE);
	
	m_sample1.ShowWindow(SW_HIDE);
	GetDlgItem(IDC_BUTTON_SAMPLE1)->ShowWindow(SW_HIDE);
	
	m_sample2.ShowWindow(SW_HIDE);
	m_instrument.ShowWindow(SW_HIDE);
	GetDlgItem(IDC_BUTTON_SAMPLE2INSTRUMENT)->ShowWindow(SW_HIDE);
	
	
	
	m_list.ShowWindow(SW_SHOW);
	GetDlgItem(IDC_STATIC_DRAW)->ShowWindow(SW_HIDE);

	////////////////////////////////////






	////////////////////////////////////
	
	GetDlgItem(IDC_STATIC_DRAW)->GetWindowRect (rectDraw);
	ScreenToClient(rectDraw);
	
	AfxGetModuleState()->m_dwVersion = 0x0601;
	AfxDaoInit();
	m_filepathname = "实验室信息管理.mdb";
	//InitCtrl();
	Init();


	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CDaoWorkDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}
	//FUOY-C96FOC3732
// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CDaoWorkDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CPaintDC dc(this); // device context for painting
		CDialog::OnPaint();

		dc.SelectStockObject(NULL_BRUSH);
		if(bDraw)
		{
			//dc.Ellipse(rectDraw);		
			CRect rect;
			CWnd *staticdraw = GetDlgItem(IDC_STATIC_DRAW);
			staticdraw->GetWindowRect(rect);
			ScreenToClient(rect);		
			CDC *drawcdc = staticdraw->GetDC ();
			DrawLine(drawcdc, CPoint(0 ,rect.Height()), CSize(rect.Width (), rect.Height()), x, y , m_length);
		}
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CDaoWorkDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

CString CDaoWorkDlg::strVARIANT(const COleVariant &var)
{
	CString strRet;
	strRet = _T("Fish");
	
	switch(var.vt )
	{
	case VT_EMPTY:
	case VT_NULL:
		strRet = _T("NULL");
		break;
	case VT_I2:
		strRet.Format (_T("%hd"), V_I2(&var));
		break;
	case VT_I4:
		strRet.Format (_T("%d"), V_I4(&var));
		break;
	case VT_R4:
		strRet.Format (_T("%e"), (double)V_R4(&var));
		break;
	case VT_R8:
		strRet.Format (_T("%e"), V_R8(&var));
		break;
	case VT_CY:
		strRet = COleCurrency(var).Format ();
		break;
	case VT_DATE:
		strRet = COleDateTime(var).Format (_T("%m-%d-%y"));
		break;
	case VT_BSTR:
		strRet = V_BSTRT(&var);
		break;
	case VT_DISPATCH:
		strRet = _T("VT_DISPATCH");
		break;
	case VT_ERROR:
		strRet = _T("VT_ERROR");
		break;
	case VT_BOOL:
		return strBOOL(V_BOOL(&var));
	case VT_VARIANT:
		strRet = _T("VT_VARIANT");
		break;
	case VT_UNKNOWN:
		strRet = _T("VT_UNKNOWN");
		break;
	case VT_I1:
		strRet = _T("VT_I1");
		break;
	case VT_UI1:
		strRet.Format (_T("0x%02hx"), (unsigned short)V_UI1(&var));
		break;
	case VT_UI2:
		strRet = _T("VT_UI2");
		break;
	case VT_UI4:
		strRet = _T("VT_UI4");
		break;
	case VT_I8:
		strRet = _T("VT_I8");
		break;
	case VT_UI8:
		strRet = _T("VT_UI8");
		break;
	case VT_INT:
		strRet = _T("VT_INT");
		break;
	case VT_UINT:
		strRet = _T("VT_UINT");
		break;
	case VT_VOID:
		strRet = _T("VT_VOID");
		break;
	case VT_HRESULT:
		strRet = _T("VT_HRESULT");
		break;
	case VT_PTR:
		strRet = _T("VT_PTR");
		break;
	case VT_SAFEARRAY:
		strRet = _T("VT_SAFEARRAY");
		break;
	case VT_CARRAY:
		strRet = _T("VT_CARRAY");
		break;
	case VT_USERDEFINED:
		strRet = _T("VT_USERDEFINED");
		break;
	case VT_LPSTR:
		strRet = _T("VT_LPSTR");
		break;
	case VT_LPWSTR:
		strRet = _T("VT_LPWSTR");
		break;
	case VT_FILETIME:
		strRet = _T("VT_FILETIME");
		break;
	case VT_BLOB:
		strRet = _T("VT_BLOB");
		break;
	case VT_STREAM:
		strRet = _T("VT_STREAM");
		break;
	case VT_STORAGE:
		strRet = _T("VT_STORAGE");
		break;
	case VT_STREAMED_OBJECT:
		strRet = _T("VT_STREAMED_OBJECT");
		break;
	case VT_STORED_OBJECT:
		strRet = _T("VT_STORED_OBJECT");
		break;
	case VT_BLOB_OBJECT:
		strRet = _T("VT_BLOB_OBJECT");
		break;
	case VT_CF:
		strRet = _T("VT_CF");
		break;
	case VT_CLSID:
		strRet = _T("VT_CLSID");
		break;
	}
	
	WORD vt = var.vt ;
	if(vt & VT_ARRAY)
	{
		vt = vt & ~VT_ARRAY;
		strRet = _T("Pointer to ");
	}
	if(vt != var.vt )
	{
		switch(vt)
		{
		case VT_EMPTY:
			strRet += _T("VT_EMPTY");
			break;
		case VT_NULL:
			strRet += _T("VT_NULL");
			break;
		case VT_I2:
			strRet += _T("VT_I2");
			break;
		case VT_I4:
			strRet += _T("VT_I4");
			break;
		case VT_R4:
			strRet += _T("VT_R4");
			break;
		case VT_R8:
			strRet += _T("VT_R8");
			break;
		case VT_CY:
			strRet += _T("VT_CY");
			break;
		case VT_DATE:
			strRet += _T("VT_DATE");
			break;
		case VT_BSTR:
			strRet += _T("VT_BSTR");
			break;
		case VT_DISPATCH:
			strRet += _T("VT_DISPATCH");
			break;
		case VT_ERROR:
			strRet += _T("VT_ERROR");
			break;
		case VT_BOOL:
			strRet += _T("VT_BOOL");
			break;
		case VT_VARIANT:
			strRet += _T("VT_VARIANT");
			break;
		case VT_UNKNOWN:
			strRet += _T("VT_UNKNOWN");
			break;
		case VT_I1:
			strRet += _T("VT_I1");
			break;
		case VT_UI1:
			strRet += _T("VT_UI1");
			break;
		case VT_UI2:
			strRet += _T("VT_UI2");
			break;
		case VT_UI4:
			strRet += _T("VT_UI4");
			break;
		case VT_I8:
			strRet += _T("VT_I8");
			break;
		case VT_UI8:
			strRet += _T("VT_UI8");
			break;
		case VT_INT:
			strRet += _T("VT_INT");
			break;
		case VT_UINT:
			strRet += _T("VT_UINT");
			break;
		case VT_VOID:
			strRet += _T("VT_VOID");
			break;
		case VT_HRESULT:
			strRet += _T("VT_HRESULT");
			break;
		case VT_PTR:
			strRet += _T("VT_PTR");
			break;
		case VT_SAFEARRAY:
			strRet += _T("VT_SAFEARRAY");
			break;
		case VT_CARRAY:
			strRet += _T("VT_CARRAY");
			break;
		case VT_USERDEFINED:
			strRet += _T("VT_USERDEFINED");
			break;
		case VT_LPSTR:
			strRet += _T("VT_LPSTR");
			break;
		case VT_LPWSTR:
			strRet += _T("VT_LPWSTR");
			break;
		case VT_FILETIME:
			strRet += _T("VT_FILETIME");
			break;
		case VT_BLOB:
			strRet += _T("VT_BLOB");
			break;
		case VT_STREAM:
			strRet += _T("VT_STREAM");
			break;
		case VT_STORAGE:
			strRet += _T("VT_STORAGE");
			break;
		case VT_STREAMED_OBJECT:
			strRet += _T("VT_STREAMED_OBJECT");
			break;
		case VT_STORED_OBJECT:
			strRet += _T("VT_STORED_OBJECT");
			break;
		case VT_BLOB_OBJECT:
			strRet += _T("VT_BLOB_OBJECT");
			break;
		case VT_CF:
			strRet += _T("VT_CF");
			break;
		case VT_CLSID:
			strRet += _T("VT_CLSID");
			break;
		}
	}
	return strRet;
}

LPCTSTR CDaoWorkDlg::strBOOL(BOOL bFlag)
{
	return bFlag ? _T("TRUE") : _T("FALSE");
}

void CDaoWorkDlg::OnSelchangedTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
	// TODO: Add your control notification handler code here
	
	int i;
	HTREEITEM item_sel;
	item_sel = m_tree.GetSelectedItem ();		

⌨️ 快捷键说明

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