www.gusucode.com > VC++版的小型考勤管理系统-源码程序 > VC++版的小型考勤管理系统-源码程序\code\WorkplanDlg.cpp

    //Download by http://www.NewXing.com
// WorkplanDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Attendance.h"
#include "WorkplanDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CWorkplanDlg dialog


CWorkplanDlg::CWorkplanDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CWorkplanDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CWorkplanDlg)
	m_Time1 = 0;
	m_Time2 = 0;
	m_Time3 = 0;
	m_Time4 = 0;
	//}}AFX_DATA_INIT
}


void CWorkplanDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CWorkplanDlg)
	DDX_DateTimeCtrl(pDX, IDC_WORKSTAT_DATETIMEPICKER1, m_Time1);
	DDX_DateTimeCtrl(pDX, IDC_WORKSTAT_DATETIMEPICKER2, m_Time2);
	DDX_DateTimeCtrl(pDX, IDC_WORKSTAT_DATETIMEPICKER3, m_Time3);
	DDX_DateTimeCtrl(pDX, IDC_WORKSTAT_DATETIMEPICKER4, m_Time4);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CWorkplanDlg, CDialog)
	//{{AFX_MSG_MAP(CWorkplanDlg)
	ON_BN_CLICKED(IDC_WORKPLAN_RESET, OnWorkplanReset)
	ON_BN_CLICKED(IDC_WORKPLAN_MODIFY, OnWorkplanModify)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CWorkplanDlg message handlers

void CWorkplanDlg::OnWorkplanReset() 
{
	CString cstr[4];
	char str[4][9];
	int i;
	int nHour,nMinute,nSecond; // 时,分,秒
	CString strFileName=".\\workplan.ini"; // INI文件名

	// 读取INI文件
	GetPrivateProfileString("WorkPlan", "Time1", "08:00:00", str[0], 9, strFileName);
	GetPrivateProfileString("WorkPlan", "Time2", "12:00:00", str[1], 9, strFileName);
	GetPrivateProfileString("WorkPlan", "Time3", "14:00:00", str[2], 9, strFileName);
	GetPrivateProfileString("WorkPlan", "Time4", "18:00:00", str[3], 9, strFileName);
	for(i=0; i<4; i++) cstr[i]=str[i];
	// 定义四个时间变量并初始化为INI文件中的值
	sscanf(cstr[0].Left(2), "%d", &nHour);		// 得到时
	sscanf(cstr[0].Mid(3,2), "%d", &nMinute);	// 得到分
	sscanf(cstr[0].Mid(6,2), "%d", &nSecond);	// 得到秒
	CTime t1(2002,1,1,nHour,nMinute,nSecond);	// 初始化t1

	sscanf(cstr[1].Left(2), "%d", &nHour);		// 得到时
	sscanf(cstr[1].Mid(3,2), "%d", &nMinute);	// 得到分
	sscanf(cstr[1].Mid(6,2), "%d", &nSecond);	// 得到秒
	CTime t2(2002,1,1,nHour,nMinute,nSecond);	// 初始化t2

	sscanf(cstr[2].Left(2), "%d", &nHour);		// 得到时
	sscanf(cstr[2].Mid(3,2), "%d", &nMinute);	// 得到分
	sscanf(cstr[2].Mid(6,2), "%d", &nSecond);	// 得到秒
	CTime t3(2002,1,1,nHour,nMinute,nSecond);	// 初始化t3

	sscanf(cstr[3].Left(2), "%d", &nHour);		// 得到时
	sscanf(cstr[3].Mid(3,2), "%d", &nMinute);	// 得到分
	sscanf(cstr[3].Mid(6,2), "%d", &nSecond);	// 得到秒
	CTime t4(2002,1,1,nHour,nMinute,nSecond);	// 初始化t4

	// 设置成员变量
	m_Time1=t1;
	m_Time2=t2;
	m_Time3=t3;
	m_Time4=t4;
	UpdateData(FALSE); // 更新界面数据	
}

void CWorkplanDlg::OnWorkplanModify() 
{
	CString strFileName=".\\workplan.ini"; // INI文件名

	UpdateData(); // 更新数据

	WritePrivateProfileString("WorkPlan", "Time1",
		m_Time1.Format("%H:%M:%S"), strFileName);
	WritePrivateProfileString("WorkPlan", "Time2",
		m_Time2.Format("%H:%M:%S"), strFileName);
	WritePrivateProfileString("WorkPlan", "Time3",
		m_Time3.Format("%H:%M:%S"), strFileName);
	WritePrivateProfileString("WorkPlan", "Time4",
		m_Time4.Format("%H:%M:%S"), strFileName);
}

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

	OnWorkplanReset(); // 初始化时间设置
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}