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

📄 feastdlg.cpp

📁 一个显示节日的应用程序
💻 CPP
字号:
// FeastDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Feast.h"
#include "FeastDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CFeastDlg dialog

CFeastDlg::CFeastDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CFeastDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFeastDlg)
		// 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);
}

void CFeastDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFeastDlg)
	DDX_Control(pDX, IDC_LIST1, m_ListCtrl);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CFeastDlg, CDialog)
	//{{AFX_MSG_MAP(CFeastDlg)
	ON_WM_PAINT()
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFeastDlg message handlers

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

	// 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
	
	CenterWindow(GetDesktopWindow());	// center to the hpc screen

	b_tradition = false;
	b_model = false;
	b_east = false;

	m_ListCtrl.MoveWindow(CRect(11,73,480,270));
	m_ListCtrl.SetTextBkColor(CLR_NONE);

	m_ListCtrl.InsertColumn(0,L"a");
	m_ListCtrl.InsertColumn(1,L"b");
	m_ListCtrl.SetColumnWidth(0,100);
	m_ListCtrl.SetColumnWidth(1,370);

	InitModelFeast();

	// TODO: Add extra initialization here
	
	return TRUE;  // return TRUE  unless you set the focus to a control
}



void CFeastDlg::OnPaint() 
{
	SetWindowPos(&CWnd::wndTopMost,0,0,480,272,SWP_SHOWWINDOW);
	CPaintDC dc(this); // device context for painting
	
	bmpBk.LoadBitmap(IDB_BITMAP_BKFEAST);
	BITMAP bmpInfo;
	bmpBk.GetBitmap(&bmpInfo);
	dcMem.CreateCompatibleDC(&dc);
	CBitmap *poldBmp=dcMem.SelectObject(&bmpBk);
	dc.BitBlt(0,0,bmpInfo.bmWidth,bmpInfo.bmHeight,&dcMem,0,0,SRCCOPY);
	dcMem.SelectObject(poldBmp);	
}

void CFeastDlg::InitModelFeast()
{
	m_ListCtrl.DeleteAllItems();
	m_ListCtrl.InsertItem(0,L"1月1日",0);
	m_ListCtrl.SetItemText(0,1,L"元旦节");

	m_ListCtrl.InsertItem(1,L"3月8日",0);
	m_ListCtrl.SetItemText(1,1,L"妇女节");

	m_ListCtrl.InsertItem(2,L"3月12日",0);
	m_ListCtrl.SetItemText(2,1,L"植树节");

	m_ListCtrl.InsertItem(3,L"3月15日",0);
	m_ListCtrl.SetItemText(3,1,L"消费者日");

	m_ListCtrl.InsertItem(4,L"5月1日",0);
	m_ListCtrl.SetItemText(4,1,L"劳动节");

	m_ListCtrl.InsertItem(5,L"5月4日",0);
	m_ListCtrl.SetItemText(5,1,L"青年节");

	m_ListCtrl.InsertItem(6,L"5月第三个周日",0);
	m_ListCtrl.SetItemText(6,1,L"助残日");

	m_ListCtrl.InsertItem(7,L"6月1日",0);
	m_ListCtrl.SetItemText(7,1,L"儿童节");

	m_ListCtrl.InsertItem(8,L"6月6日",0);
	m_ListCtrl.SetItemText(8,1,L"爱眼节");

	m_ListCtrl.InsertItem(9,L"6月11日",0);
	m_ListCtrl.SetItemText(9,1,L"中国人口日");

	m_ListCtrl.InsertItem(10,L"6月22日",0);
	m_ListCtrl.SetItemText(10,1,L"儿童慈善日");

	m_ListCtrl.InsertItem(11,L"6月25日",0);
	m_ListCtrl.SetItemText(11,1,L"中国土地日");

	m_ListCtrl.InsertItem(12,L"7月1日",0);
	m_ListCtrl.SetItemText(12,1,L"建党纪念日");

	m_ListCtrl.InsertItem(13,L"8月1日",0);
	m_ListCtrl.SetItemText(13,1,L"建军节");

	m_ListCtrl.InsertItem(14,L"8月8日",0);
	m_ListCtrl.SetItemText(14,1,L"父亲节");

	m_ListCtrl.InsertItem(15,L"9月10日",0);
	m_ListCtrl.SetItemText(15,1,L"教师节");

	m_ListCtrl.InsertItem(16,L"9月20日",0);
	m_ListCtrl.SetItemText(16,1,L"爱牙日");

	m_ListCtrl.InsertItem(17,L"10月1日",0);
	m_ListCtrl.SetItemText(17,1,L"国庆节");
}

void CFeastDlg::InitTraditionFeast()
{
	m_ListCtrl.DeleteAllItems();
	m_ListCtrl.InsertItem(0,L"正月初一",0);
	m_ListCtrl.SetItemText(0,1,L"春节");

	m_ListCtrl.InsertItem(1,L"元月初五",0);
	m_ListCtrl.SetItemText(1,1,L"路神生日");

	m_ListCtrl.InsertItem(2,L"正月十五",0);
	m_ListCtrl.SetItemText(2,1,L"元宵节");

	m_ListCtrl.InsertItem(3,L"二月初二",0);
	m_ListCtrl.SetItemText(3,1,L"春龙节 (龙抬头)");

	m_ListCtrl.InsertItem(4,L"四月初四",0);
	m_ListCtrl.SetItemText(4,1,L"寒食节");

	m_ListCtrl.InsertItem(5,L"四月初五",0);
	m_ListCtrl.SetItemText(5,1,L"清明节");

	m_ListCtrl.InsertItem(6,L"五月初五",0);
	m_ListCtrl.SetItemText(6,1,L"端午节");

	m_ListCtrl.InsertItem(7,L"六月初六",0);
	m_ListCtrl.SetItemText(7,1,L"姑姑节");

	m_ListCtrl.InsertItem(8,L"六月二十四",0);
	m_ListCtrl.SetItemText(8,1,L"火把节");

	m_ListCtrl.InsertItem(9,L"七月初七",0);
	m_ListCtrl.SetItemText(9,1,L"七夕");

	m_ListCtrl.InsertItem(10,L"七月十五",0);
	m_ListCtrl.SetItemText(10,1,L"盂兰盆节");

	m_ListCtrl.InsertItem(11,L"七月三十",0);
	m_ListCtrl.SetItemText(11,1,L"地藏节");

	m_ListCtrl.InsertItem(12,L"八月十五",0);
	m_ListCtrl.SetItemText(12,1,L"中秋节");

	m_ListCtrl.InsertItem(13,L"九月初九",0);
	m_ListCtrl.SetItemText(13,1,L"重阳节");

	m_ListCtrl.InsertItem(14,L"十月初一",0);
	m_ListCtrl.SetItemText(14,1,L"祭祖节");

	m_ListCtrl.InsertItem(15,L"十二月初八",0);
	m_ListCtrl.SetItemText(15,1,L"腊八节");

	m_ListCtrl.InsertItem(16,L"十二月二十三",0);
	m_ListCtrl.SetItemText(16,1,L"小年");

	m_ListCtrl.InsertItem(17,L"年三十",0);
	m_ListCtrl.SetItemText(17,1,L"除夕");
}

void CFeastDlg::InitEastFeast()
{
	m_ListCtrl.DeleteAllItems();
	m_ListCtrl.InsertItem(0,L"2月2日",0);
	m_ListCtrl.SetItemText(0,1,L"世界湿地日");

	m_ListCtrl.InsertItem(1,L"2月14日",0);
	m_ListCtrl.SetItemText(1,1,L"情人节");

	m_ListCtrl.InsertItem(2,L"3月14日",0);
	m_ListCtrl.SetItemText(2,1,L"国际警察日");

	m_ListCtrl.InsertItem(3,L"3月21日",0);
	m_ListCtrl.SetItemText(3,1,L"世界森林日");

	m_ListCtrl.InsertItem(4,L"3月22日",0);
	m_ListCtrl.SetItemText(4,1,L"世界水日");

	m_ListCtrl.InsertItem(5,L"3月23日",0);
	m_ListCtrl.SetItemText(5,1,L"世界气象日");

	m_ListCtrl.InsertItem(6,L"4月1日",0);
	m_ListCtrl.SetItemText(6,1,L"愚人节");

	m_ListCtrl.InsertItem(7,L"4月2日",0);
	m_ListCtrl.SetItemText(7,1,L"儿童图书日");
	
	m_ListCtrl.InsertItem(8,L"4月7日",0);
	m_ListCtrl.SetItemText(8,1,L"世界卫生日");

	m_ListCtrl.InsertItem(9,L"5月17日",0);
	m_ListCtrl.SetItemText(9,1,L"世界电信日");

	m_ListCtrl.InsertItem(10,L"5月第二个周日",0);
	m_ListCtrl.SetItemText(10,1,L"母亲节");

	m_ListCtrl.InsertItem(11,L"5月31日",0);
	m_ListCtrl.SetItemText(11,1,L"世界无烟日");

	m_ListCtrl.InsertItem(12,L"6月5日",0);
	m_ListCtrl.SetItemText(12,1,L"世界环境日");

	m_ListCtrl.InsertItem(13,L"6月26日",0);
	m_ListCtrl.SetItemText(13,1,L"世界禁毒日");

	m_ListCtrl.InsertItem(14,L"6月第三个周日",0);
	m_ListCtrl.SetItemText(14,1,L"父亲节");

	m_ListCtrl.InsertItem(15,L"7月1日",0);
	m_ListCtrl.SetItemText(15,1,L"世界建筑日");

	m_ListCtrl.InsertItem(16,L"9月8日",0);
	m_ListCtrl.SetItemText(16,1,L"世界扫盲日");

	m_ListCtrl.InsertItem(17,L"9月21日",0);
	m_ListCtrl.SetItemText(17,1,L"世界和平日");

	m_ListCtrl.InsertItem(18,L"9月27日",0);
	m_ListCtrl.SetItemText(18,1,L"世界旅游日");

	m_ListCtrl.InsertItem(19,L"10月5日",0);
	m_ListCtrl.SetItemText(19,1,L"世界教师日");

	m_ListCtrl.InsertItem(20,L"10月9日",0);
	m_ListCtrl.SetItemText(20,1,L"世界邮政日");

	m_ListCtrl.InsertItem(21,L"10月16日",0);
	m_ListCtrl.SetItemText(21,1,L"国际粮食日");

	m_ListCtrl.InsertItem(22,L"11月10日",0);
	m_ListCtrl.SetItemText(22,1,L"世界青年日");

	m_ListCtrl.InsertItem(23,L"12月3日",0);
	m_ListCtrl.SetItemText(23,1,L"残疾人日");

	m_ListCtrl.InsertItem(24,L"12月7日",0);
	m_ListCtrl.SetItemText(24,1,L"国际民航日");

	m_ListCtrl.InsertItem(25,L"12月10日",0);
	m_ListCtrl.SetItemText(25,1,L"世界人权日");

	m_ListCtrl.InsertItem(26,L"12月24日",0);
	m_ListCtrl.SetItemText(26,1,L"平安夜");

	m_ListCtrl.InsertItem(27,L"12月25日",0);
	m_ListCtrl.SetItemText(27,1,L"圣诞节");
}

void CFeastDlg::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	//传统节日
	if(point.x>181&&point.x<253&&point.y<42)
	{
		DrawBmp(IDB_BITMAP_TRADITION,0);
		b_tradition=true;

		InitTraditionFeast();
		if(b_model)
		{
			DrawBmp(IDB_BITMAP_ANMODEL,1);
			b_model = false;
		}
		if(b_east)
		{
			DrawBmp(IDB_BITMAP_ANEAST,2);
			b_east = false;
		}
	}
	else if(point.x>251&&point.x<323&&point.y<42)            //现代节日
	{
		DrawBmp(IDB_BITMAP_MODEL,1);
		b_model=true;

		InitModelFeast();
		if(b_tradition)
		{
			DrawBmp(IDB_BITMAP_ANTRAD,0);
			b_tradition = false;
		}
		if(b_east)
		{
			DrawBmp(IDB_BITMAP_ANEAST,2);
			b_east = false;
		}
	}
	else if(point.x>321&&point.x<393&&point.y<42)            //西方节日
	{
		DrawBmp(IDB_BITMAP_EAST,2);
		b_east=true;

		InitEastFeast();
		if(b_tradition)
		{
			DrawBmp(IDB_BITMAP_ANTRAD,0);
			b_tradition = false;
		}
		if(b_model)
		{
			DrawBmp(IDB_BITMAP_ANMODEL,1);
			b_model = false;
		}
	}
	else if(point.x>439&&point.y<42)                    //关闭
	{
		DrawBmp(IDB_BITMAP_CLOSE,3);

		m_ListCtrl.DeleteAllItems();
	}
	CDialog::OnLButtonDown(nFlags, point);
}

void CFeastDlg::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	
	if(point.x>439&&point.y<42)                //关闭
	{
		AfxGetApp()->m_pMainWnd->SendMessage(WM_CLOSE);
	}
	CDialog::OnLButtonUp(nFlags, point);
}


void CFeastDlg::DrawBmp(UINT scrID, int tmp)
{
	CClientDC dc(this);
	dcMem.CreateCompatibleDC(&dc);
	
	CBitmap bmp;
	bmp.LoadBitmap(scrID);
	dcMem.SelectObject(&bmp);
	dc.BitBlt(181+72*tmp,0,72,42,&dcMem,0,0,SRCCOPY);
}

⌨️ 快捷键说明

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