gusucode.com > ADO智能开发包C++源码程序 > ADO智能开发包/sfxdb_src_1.0.510.1/sfx/Examples/AdoControl/TestControlPage.cpp

    /*******************************************************

《ADO智能组件》演示程序

版权所有(c) 2004-2005 许松森保留所有权力。 

有关最新信息请访问 http://www.willspace.net 站	

点,电子信箱 ytf1978#163.com(#号换为@号)

********************************************************/

// TestControlPage.cpp : implementation file
//

#include "stdafx.h"
#include "AdoControl.h"
#include "TestControlPage.h"
#include "TestMainDlg.h"


// CTestControlPage dialog

IMPLEMENT_DYNAMIC(CTestControlPage, CPropertyPage)
CTestControlPage::CTestControlPage()
	: CPropertyPage(CTestControlPage::IDD)
{
}

CTestControlPage::~CTestControlPage()
{
}

void CTestControlPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	DDX_Control(pDX, IDC_EDIT_NAME, m_EditName);
	DDX_Control(pDX, IDC_COMBO_ATT, m_DBComBoBoxAtt);
	DDX_Control(pDX, IDC_COMBO_AGE, m_DBComBoAge);
	DDX_Control(pDX, IDC_EDIT_TEL, m_DBEditTel);
	DDX_Control(pDX, IDC_EDIT_MOBILE, m_DBEditMoble);
	DDX_Control(pDX, IDC_EDIT_EMAIL, m_DBEditEmail);
	DDX_Control(pDX, IDC_EDIT_CORP, m_DBEditCorp);
	DDX_Control(pDX, IDC_EDIT_ADDRESS, m_DBEditAddress);
	DDX_Control(pDX, IDC_COMBO_POSITION, m_DBComBoPosition);
	DDX_Control(pDX, IDC_EDIT_SCHOOL, m_DBEditSchool);
	DDX_Control(pDX, IDC_COMBO_SPE, m_DBComBoSpe);
	DDX_Control(pDX, IDC_EDIT_MON, m_DBEditMon);
	DDX_Control(pDX, IDC_CHECK_MARR, m_DBCheckMarr);
	DDX_Control(pDX, IDC_RICHEDIT_FORMAT, m_DBRichEdit);
	DDX_Control(pDX, IDC_EDIT_MEMO, m_DBEditMemo);
	DDX_Control(pDX, IDC_CUSTOM_IMAGE, m_DBImage);
	DDX_Control(pDX, IDC_DATETIMEPICKER1, m_DBDateTime);
	DDX_Control(pDX, IDC_COMBO_SEX, m_DBComboSex);
}


BEGIN_MESSAGE_MAP(CTestControlPage, CPropertyPage)
	ON_BN_CLICKED(IDC_CHECK_SHOW_IMAGE, OnBnClickedCheck1)
END_MESSAGE_MAP()





void CTestControlPage::InitDataControl()
{
	#define FIELDNAME_LEN 25
	typedef struct tagDBCONTROLINFO {
		CDBBaseControl *pWnd;
		LPTSTR lpszFieldName;//[FIELDNAME_LEN];
	}DBCONTROLINFO;

	try
	{
		CTestMainDlg *pParent = (CTestMainDlg*)theApp.m_pMainWnd;
		DBCONTROLINFO dbControlInfo[] = {
			{(CDBBaseControl*)&m_EditName, _T("姓名")},
			{(CDBBaseControl*)&m_DBComBoBoxAtt, _T("属相")},
			{(CDBBaseControl*)&m_DBComboSex, _T("性别")},
			{(CDBBaseControl*)&m_DBComBoAge, _T("年龄")},
			{(CDBBaseControl*)&m_DBEditTel, _T("电话")},
			{(CDBBaseControl*)&m_DBEditMoble, _T("手机")},
			{(CDBBaseControl*)&m_DBEditEmail, _T("电子信箱")},
			{(CDBBaseControl*)&m_DBEditCorp, _T("公司")},
			{(CDBBaseControl*)&m_DBEditAddress, _T("地址")},
			{(CDBBaseControl*)&m_DBComBoPosition, _T("职位")},
			{(CDBBaseControl*)&m_DBEditSchool, _T("毕业院校")},
			{(CDBBaseControl*)&m_DBComBoSpe, _T("专业")},
			{(CDBBaseControl*)&m_DBEditMon, _T("月薪")},
			{(CDBBaseControl*)&m_DBCheckMarr, _T("结婚")},
			{(CDBBaseControl*)&m_DBRichEdit, _T("格式文本备注")},
			{(CDBBaseControl*)&m_DBImage, _T("照片")},
			{(CDBBaseControl*)&m_DBEditMemo, _T("文本备注")},
			{(CDBBaseControl*)&m_DBDateTime, _T("出生日期")}
		};

		CDBBaseControl *pDBBase = NULL;
		for (int iItem=0; iItem<sizeof(dbControlInfo)/sizeof(DBCONTROLINFO); iItem++)
		{
			pDBBase = dbControlInfo[iItem].pWnd;
			pDBBase->SetAdoRecordset(pParent->GetAdoRecordset());
			pDBBase->SetFieldName((LPCTSTR)dbControlInfo[iItem].lpszFieldName);
		}
	}catch (TException &exc)
	{
		MessageBox(exc.m_Message);
	}
}

// CTestControlPage message handlers

BOOL CTestControlPage::OnInitDialog()
{
	CPropertyPage::OnInitDialog();



	InitDataControl();
	InitControlData();

	if (m_DBImage.GetPictureShow())
	{
		::CheckDlgButton(m_hWnd, IDC_CHECK_SHOW_IMAGE, BST_CHECKED);
	}else
	{
		::CheckDlgButton(m_hWnd, IDC_CHECK_SHOW_IMAGE, BST_UNCHECKED);
	}



	return TRUE;
}


void CTestControlPage::OnBnClickedCheck1()
{
	if (::IsDlgButtonChecked(m_hWnd, IDC_CHECK_SHOW_IMAGE)&BST_CHECKED)
	{
		m_DBImage.SetPictureShow(true);
	}else
	{
		m_DBImage.SetPictureShow(false);
	}
}


BOOL WINAPI ComboBox_AddNum(HWND hWnd, int nBegin, int nEnd)
{
	CString m_test;

	if (NULL != hWnd)
	{
		for (int iIndex=nBegin; iIndex<nEnd; iIndex++)
		{
			m_test.Format(_T("%d"), iIndex);
			::SendMessage(hWnd, CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)m_test);
		}
		return TRUE;
	}

	return FALSE;
}


// 初始化控件中的可选择的数据项。
void CTestControlPage::InitControlData(void)
{
	m_DBComboSex.AddString(_T("男"));
	m_DBComboSex.AddString(_T("女"));

	m_DBComBoBoxAtt.AddString(_T("鼠"));
	m_DBComBoBoxAtt.AddString(_T("牛"));
	m_DBComBoBoxAtt.AddString(_T("虎"));
	m_DBComBoBoxAtt.AddString(_T("兔"));
	m_DBComBoBoxAtt.AddString(_T("龙"));
	m_DBComBoBoxAtt.AddString(_T("蛇"));
	m_DBComBoBoxAtt.AddString(_T("马"));
	m_DBComBoBoxAtt.AddString(_T("羊"));
	m_DBComBoBoxAtt.AddString(_T("猴"));
	m_DBComBoBoxAtt.AddString(_T("鸡"));
	m_DBComBoBoxAtt.AddString(_T("狗"));
	m_DBComBoBoxAtt.AddString(_T("猪"));

	VERIFY(ComboBox_AddNum(m_DBComBoAge.m_hWnd, 1, 100));
}