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

📄 page2.cpp

📁 C语言课程设计案例精编
💻 CPP
字号:
// Page2.cpp : implementation file
//

#include "stdafx.h"
#include "Page.h"
#include "Page2.h"
#include"PageDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPage2 property page

IMPLEMENT_DYNCREATE(CPage2, CPropertyPage)

CPage2::CPage2() : CPropertyPage(CPage2::IDD)
{
	//{{AFX_DATA_INIT(CPage2)
	m_check_bPlaySound=AfxGetApp()->GetProfileInt("Alarm_Set","PlaySound",0);
	m_check_bShutdown=AfxGetApp()->GetProfileInt("Alarm_Set","ShutDown",0);
	m_check_bBeep=AfxGetApp()->GetProfileInt("Alarm_Set","Beep",0);
	m_check_bPopup=AfxGetApp()->GetProfileInt("Alarm_Set","Popup",0);
	m_check_bRunApp=AfxGetApp()->GetProfileInt("Alarm_Set","RunApp",0);
	m_check_bLock=AfxGetApp()->GetProfileInt("Alarm_Set","Lock",0);
	m_check_bSoundTime=AfxGetApp()->GetProfileInt("Alarm_Set","SoundTime",0);
	m_check_bZhengdian=AfxGetApp()->GetProfileInt("Alarm_Set","Zhengdian",0);
	m_check_bScreenSave=AfxGetApp()->GetProfileInt("Alarm_Set","ScreenSaver",0);	
	m_edit_soundTimes=AfxGetApp()->GetProfileInt("Alarm_Set","音乐播放次数",1);	
	m_nSoundStyle =AfxGetApp()->GetProfileInt("Alarm_Set","SoundStyle",0);
	
	m_edit_soundPath=AfxGetApp()->GetProfileString("Alarm_Set","SoundPath");
	m_edit_appPath=AfxGetApp()->GetProfileString("Alarm_Set","AppPath");
	
	
	m_h = 0;
	m_m = 0;
	m_s = 0;
	m_h_inter = 0;
	m_m_inter = 0;
	
	//}}AFX_DATA_INIT
	
	m_bHadSet=false;
}

CPage2::~CPage2()
{
}

void CPage2::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPage2)
	
	DDX_SliderButtonCtrl(pDX, IDC_MIN_INTERVAL, m_min_interval,0);
	DDX_SliderButtonCtrl(pDX, IDC_HOUR_INTERVAL, m_hour_interval,0);
	DDX_SliderButtonCtrl(pDX, IDC_SEC, m_sec,0);
	DDX_SliderButtonCtrl(pDX, IDC_MIN, m_min,0);
	DDX_SliderButtonCtrl(pDX, IDC_HOUR, m_hour,0);
	
	/*	DDX_Control(pDX,IDC_MIN_INTERVAL,m_min_interval);
	DDX_Control(pDX,IDC_HOUR_INTERVAL,m_hour_interval);
	DDX_Control(pDX,IDC_SEC,m_sec);  
	DDX_Control(pDX,IDC_MIN,m_min);
	DDX_Control(pDX,IDC_HOUR,m_hour); */
	
	DDX_Check(pDX, IDC_CHECK1_PLAYSOUND, m_check_bPlaySound);
	DDX_Check(pDX, IDC_CHECK2_SHUTDOWN, m_check_bShutdown);
	DDX_Check(pDX, IDC_CHECK3_BEEP, m_check_bBeep);
	DDX_Check(pDX, IDC_CHECK4_POPUP, m_check_bPopup);
	DDX_Check(pDX, IDC_CHECK5_RUNAPP, m_check_bRunApp);
	DDX_Check(pDX, IDC_CHECK6_LOCK, m_check_bLock);
	DDX_Check(pDX,IDC_CHECK_SOUNDTIME,m_check_bSoundTime);
	DDX_Check(pDX,IDC_CHECK_ZHENGDIAN,m_check_bZhengdian);
	DDX_Check(pDX,IDC_CHECK_SCREENSAVE,m_check_bScreenSave);
	
	DDX_Text(pDX, IDC_EDIT_APPPATH, m_edit_appPath);
	DDX_Text(pDX,IDC_EDIT_SOUNDPATH,m_edit_soundPath);
	DDX_Text(pDX, IDC_HOUR, m_h);
	DDX_Text(pDX, IDC_MIN, m_m);
	DDX_Text(pDX, IDC_SEC, m_s);
	DDX_Text(pDX, IDC_HOUR_INTERVAL, m_h_inter);
	DDX_Text(pDX, IDC_MIN_INTERVAL, m_m_inter);
	DDX_Text(pDX,IDC_EDIT_SOUNDTIMES,m_edit_soundTimes);
	DDX_Control(pDX, IDC_HRSSCLOCK1, m_SoundTime);
	DDX_Radio(pDX, IDC_RADIO1, m_nSoundStyle);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPage2, CPropertyPage)
//{{AFX_MSG_MAP(CPage2)
ON_WM_LBUTTONDOWN()
ON_BN_CLICKED(IDC_CHECK1_PLAYSOUND, OnCheck1Playsound)
ON_BN_CLICKED(IDC_CHECK5_RUNAPP, OnCheck5Runapp)
ON_BN_CLICKED(IDC_OK2, OnOK2)
ON_WM_CTLCOLOR()
ON_BN_CLICKED(IDC_FINDSOUND,OnFindSound)
ON_BN_CLICKED(IDC_FIND_APP,OnFindApp)
ON_BN_CLICKED(IDC_SAVE_SETTINGS,OnSaveSettings)
ON_BN_CLICKED(IDC_SOUNDTIME, OnSoundtime)
ON_EN_CHANGE(IDC_MIN_INTERVAL, OnChangeMinInterval)
ON_EN_CHANGE(IDC_HOUR_INTERVAL, OnChangeHourInterval)
ON_EN_SETFOCUS(IDC_HOUR_INTERVAL, OnSetfocusHourInterval)
ON_EN_SETFOCUS(IDC_MIN_INTERVAL, OnSetfocusMinInterval)
ON_BN_CLICKED(IDC_RADIO1,OnRadio)
ON_BN_CLICKED(IDC_RADIO2,OnRadio)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPage2 message handlers

HBRUSH CPage2::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
	
	
	pDC->SetBkMode(TRANSPARENT);
	
	if(pWnd->GetDlgCtrlID()==IDC_HOUR)
		pDC->SetTextColor(RGB(0,128,192));
	
	if(pWnd->GetDlgCtrlID()==IDC_MIN)
		pDC->SetTextColor(RGB(0,128,192));
	
	if(pWnd->GetDlgCtrlID()==IDC_SEC)
		pDC->SetTextColor(RGB(0,128,192));
	
	return hbr;
}


void CPage2::OnLButtonDown(UINT nFlags, CPoint point) 
{
	
	AfxGetMainWnd()->SendMessage(WM_NCLBUTTONDOWN,HTCAPTION,0);
	
	CPropertyPage::OnLButtonDown(nFlags, point);
}



BOOL CPage2::OnInitDialog() 
{
	CPropertyPage::OnInitDialog();
	
	LOGFONT lf;
	::ZeroMemory(&lf,sizeof(lf));  //API函数,它将一块内存清零
	lf.lfHeight =145;         
	lf.lfWeight =FW_BOLD;     //粗体,  FW_NORMAL常规
	lf.lfItalic =false;
	
	::lstrcpy(lf.lfFaceName ,"Times New Roman"); 
	//::lstrcpy也是API函数,它将一个文本字符串从一个内存位置复制到另一个内存位置
	//你也可以用C函数memset和 strcpy(实际上,应该调用 _tcscpy()而不是strcpy这样就能
	//处理ANSI或Unicode  字符了),但是经常调用API函数减少了静态连接库的程序代码
	
	font.CreatePointFontIndirect(&lf);
	GetDlgItem(IDC_HOUR)->SetFont(&font);
	GetDlgItem(IDC_MIN)->SetFont(&font);
	GetDlgItem(IDC_SEC)->SetFont(&font);  //设置字体
	GetDlgItem(IDC_HOUR_INTERVAL)->SetFont(&font);  //设置字体
	GetDlgItem(IDC_MIN_INTERVAL)->SetFont(&font);  //设置字体
	
	this->OnCheck1Playsound();
	this->OnCheck5Runapp();
	this->OnRadio();
	
 	
	return TRUE;  
}


void CPage2::OnFindSound()
{
	CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,"波形声音文件(*.wav)|*.wav|所有文件(*.*)|*.*||");
	
	if(OSVer()=="WinNT")
		dlg.m_ofn.lStructSize=88;
	else
		dlg.m_ofn.lStructSize=76;
	
	if(dlg.DoModal()==IDOK)
	{
		m_edit_soundPath= dlg.GetPathName();
		MessageBox(m_edit_soundPath);
		UpdateData(false);		
	}
}

void CPage2::OnFindApp() 
{
	UpdateData(true);
	CFileDialog dlg(true,NULL,NULL,OFN_HIDEREADONLY,"所有文件(*.*)|*.*|可执行文件(*.exe)|*.exe||");
	if(dlg.DoModal()==IDCANCEL)
		return;
	m_edit_appPath=dlg.GetPathName();
	UpdateData(false);
}


void CPage2::OnCheck1Playsound() 
{
	GetDlgItem(IDC_SAVE_SETTINGS)->EnableWindow(true);
	
	UpdateData(true);
	if(m_check_bPlaySound)
	{
		
		GetDlgItem(IDC_EDIT_SOUNDPATH)->EnableWindow(true);
		GetDlgItem(IDC_FINDSOUND)->EnableWindow(true);
		GetDlgItem(IDC_EDIT_SOUNDTIMES)->EnableWindow(true);
	}
	else
	{
		GetDlgItem(IDC_EDIT_SOUNDPATH)->EnableWindow(false);
		GetDlgItem(IDC_FINDSOUND)->EnableWindow(false);
		GetDlgItem(IDC_EDIT_SOUNDTIMES)->EnableWindow(false);
	}
	
	
}

void CPage2::OnCheck5Runapp() 
{
	
	GetDlgItem(IDC_SAVE_SETTINGS)->EnableWindow(true);
	UpdateData(true);
	if(m_check_bRunApp)
	{
		GetDlgItem(IDC_EDIT_APPPATH)->EnableWindow(true);
		GetDlgItem(IDC_FIND_APP)->EnableWindow(true);
	}
	else
	{
		GetDlgItem(IDC_EDIT_APPPATH)->EnableWindow(false);
		GetDlgItem(IDC_FIND_APP)->EnableWindow(false);
	}
	
}


void CPage2::OnOK2()
{
	
	UpdateData(true);	
	
	m_now=CTime::GetCurrentTime();  //获取现在的时间
	
	m_set=CTime::CTime(m_now.GetYear(),
		m_now.GetMonth(),
		m_now.GetDay(),
		m_h,
		m_m,
		m_s	 );
	if(m_set < m_now)						 //如果设置的时间比当前的时间还小,就重新设置
	{
		MessageBox("时间设置错误,设置的时间应该在当前时间之后才行!请重新设置。","设置错误",MB_OK | MB_ICONINFORMATION);
	}		
	else
	{
		((CPageDlg*)AfxGetMainWnd())->ActivatePage(0);
		
		CString str=m_set.Format("%H:%M:%S");
		((CPageDlg*)AfxGetMainWnd())->m_page1.SetDlgItemText(IDC_EDIT2_TIMESET,str);
		
		m_bHadSet=true; //已经设置时间的标记为TRUE
		
		((CPageDlg*)AfxGetMainWnd())->m_page1.SetDlgItemText(IDC_STATE,"设置成功!");
		
	}
	
}

void CPage2::ReturnOK()
{
	OnOK2();   //添加此函数是为了可以在主对话框中可以调用该类的保护型的成员函数OnOK2();
	
}



void CPage2::OnSaveSettings()
{
	
    UpdateData();
	
	AfxGetApp()->WriteProfileInt("Alarm_Set","PlaySound",m_check_bPlaySound? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","ShutDown",m_check_bShutdown? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","Beep",m_check_bBeep? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","Popup",m_check_bPopup? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","RunApp",m_check_bRunApp? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","Lock",m_check_bLock? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","SoundTime",m_check_bSoundTime? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","Zhengdian",m_check_bZhengdian? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","SoundStyle",m_nSoundStyle? 1:0);
	AfxGetApp()->WriteProfileInt("Alarm_Set","ScreenSaver",m_check_bScreenSave? 1:0);
	
	MessageBeep(MB_ICONASTERISK);
	GetDlgItem(IDC_SAVE_SETTINGS)->EnableWindow(false);
	
}

void CPage2::OnSoundtime() 
{
	m_SoundTime.SoundTime();
}




void CPage2::OnChangeMinInterval() 
{
	
	CTime t=CTime::GetCurrentTime();
	CString str_m;
	
	UpdateData(true);
	
	int m=t.GetMinute()+m_m_inter;
	if(m>59)
	{
		m-=60;
		int h=t.GetHour()+1;
		CString str_h;
		str_h.Format("%d",h);
		m_hour.SetWindowText(str_h);
	}
	
	
	str_m.Format("%d",m);
	m_min.SetWindowText(str_m);
	
	
}

void CPage2::OnChangeHourInterval() 
{
	CTime t=CTime::GetCurrentTime();
	
	UpdateData(true);
	
	int h=t.GetHour()+m_h_inter;
	
	if(h>24)
		h-=24;
	CString str_h;
	str_h.Format("%d",h);
	m_hour.SetWindowText(str_h);
	
	
	
}

void CPage2::OnSetfocusHourInterval() 
{
	
	
}

void CPage2::OnSetfocusMinInterval() 
{
	
	
}

void CPage2::OnRadio()
{
	GetDlgItem(IDC_SAVE_SETTINGS)->EnableWindow(true);
	
	UpdateData(true);
	if(m_nSoundStyle==0)
	{	this->m_SoundTime.SetSoundStyle(0);	/*MessageBox("male");*/}
	
	else
	{	this->m_SoundTime.SetSoundStyle(1);	/*MessageBox("famale");*/}
	
	
}


⌨️ 快捷键说明

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