📄 mainfrm.cpp
字号:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "WinLottory.h"
#include "PositionPoint.h"
#include "MainFrm.h"
#include "WinLottoryDoc.h"
#include "DialogConfFirstStep.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_TIMER()
ON_WM_ACTIVATE()
ON_COMMAND(ID_MENU_CONF_LOAD, OnMenuConfLoad)
ON_COMMAND(ID_CONF_GUIDE, OnConfGuide)
ON_WM_KEYUP()
ON_WM_ACTIVATEAPP()
ON_WM_LBUTTONDOWN()
ON_WM_CANCELMODE()
ON_WM_LBUTTONDBLCLK()
ON_WM_CAPTURECHANGED()
ON_COMMAND(ID_CONF_SAVERESULT, OnConfSaveresult)
ON_WM_ERASEBKGND()
ON_WM_CHAR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
count = 0;
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
// 注释掉toolbar和statusbar
/*if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);*/
// 设置定时器,用于定时显示抽奖号码
if (!SetTimer(1001,10,NULL))
{
MessageBox("定时器初始化失败!");
return false;
}
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
void CMainFrame::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
// TODO: Add your message handler code here
PositionPoint pp;
CRect rc(280,268,853,385);
CClientDC dc(this);
CFrameWnd * pFrame = (CFrameWnd *)(AfxGetApp()->m_pMainWnd);
CWinLottoryDoc *pDoc = (CWinLottoryDoc *) pFrame->GetActiveDocument();
// 判断定时器是否在用
if (pDoc->m_nIfTimer==0)
{
if (pDoc->m_sLottoryData.GetSize()>0)
{
pDoc->m_nIfSetTimer=0;
// 透明背景
dc.SetBkMode(TRANSPARENT);
// 设置画刷
CBrush brush(RGB(255,0,0));
CBrush *oldBrush = dc.SelectObject(&brush);
dc.Rectangle(280,248,853,385);
dc.SelectObject(oldBrush);
// 设置字体
CFont mainTitleFont;
mainTitleFont.CreatePointFont(650,_T("楷体_GB2312"));
dc.SelectObject(&mainTitleFont);
// 显示数据
dc.DrawText(_T(pDoc->m_sLottoryData.GetAt(count)),-1,&rc,DT_SINGLELINE/*|DT_CENTER|DT_VCENTER*/);
count++;
// InvalidateRect(&rc,0);
if (count==pDoc->m_sLottoryData.GetSize())
{
count=0;
}
}
else
{
pDoc->m_nIfSetTimer=1;
}
}
//Invalidate(true);
CFrameWnd::OnTimer(nIDEvent);
}
void CMainFrame::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
CFrameWnd::OnActivate(nState, pWndOther, bMinimized);
}
void CMainFrame::OnMenuConfLoad()
{
CFrameWnd * pFrame = (CFrameWnd *)(AfxGetApp()->m_pMainWnd);
CWinLottoryDoc *pDoc = (CWinLottoryDoc *) pFrame->GetActiveDocument();
CFileDialog pFileDlg(TRUE,".*",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"*(*.*)|*.*||");
if(pFileDlg.DoModal()==IDOK)
{
pDoc->m_sConfigFileName=pFileDlg.GetPathName();
//pDoc->m_configFile
MessageBox(pDoc->m_sConfigFileName);
}
}
void CMainFrame::OnConfGuide()
{
CDialogConfFirstStep dcf = new CDialogConfFirstStep();
dcf.DoModal();
}
void CMainFrame::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CFrameWnd::OnKeyUp(nChar, nRepCnt, nFlags);
}
void CMainFrame::OnActivateApp(BOOL bActive, HTASK hTask)
{
CFrameWnd::OnActivateApp(bActive, hTask);
// TODO: Add your message handler code here
}
void CMainFrame::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CFrameWnd::OnLButtonDown(nFlags, point);
}
void CMainFrame::OnCancelMode()
{
CFrameWnd::OnCancelMode();
}
void CMainFrame::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CFrameWnd::OnLButtonDblClk(nFlags, point);
}
void CMainFrame::OnCaptureChanged(CWnd *pWnd)
{
// TODO: Add your message handler code here
CFrameWnd::OnCaptureChanged(pWnd);
}
void CMainFrame::OnConfSaveresult()
{
CFrameWnd * pFrame = (CFrameWnd *)(AfxGetApp()->m_pMainWnd);
CWinLottoryDoc *pDoc = (CWinLottoryDoc *) pFrame->GetActiveDocument();
CFile settingFile;
char dir[200];
//GetCurrentDirectory(200,dir);
CString fileName;
CTime ct = CTime::GetCurrentTime();
CString date = ct.Format("%y年%m月%d日%H时%M分%S秒");
// 得到桌面的路径
if (SHGetSpecialFolderPath(NULL, dir, CSIDL_DESKTOPDIRECTORY, FALSE) == FALSE)
{
AfxMessageBox("Cannot find directory!");
}
else
{
fileName.Format("%s", dir);
fileName = fileName + "\\";
fileName = fileName + date;
fileName = fileName + "抽奖结果文件.txt";
MessageBox(fileName);
int j;
if (settingFile.Open(fileName.GetBuffer(0), CFile::modeCreate | CFile::modeWrite))
{
char buf[100] = {0};
for (int i=0;i<3;i++)
{
switch (i)
{
case 0:
memset(buf, 0, 100);
strcpy(buf, "一等奖中奖名单:");
settingFile.Write(buf, sizeof(buf));
settingFile.Write("\n",sizeof("\n"));
settingFile.Write("--------------------",sizeof("--------------------"));
settingFile.Write("\n",sizeof("\n"));
for (j=0;j<(pDoc->m_nLottory)[i];j++)
{
memset(buf, 0, 100);
strcpy(buf, pDoc->m_sLottoryBingo.GetAt((pDoc->m_nLottory)[2]+(pDoc->m_nLottory)[1]+j));
settingFile.Write(buf, sizeof(buf));
settingFile.Write("\n",sizeof("\n"));
}
settingFile.Write("\n",sizeof("\n"));
settingFile.Write("\n",sizeof("\n"));
break;
case 1:
memset(buf, 0, 100);
strcpy(buf, "二等奖中奖名单:");
settingFile.Write(buf, sizeof(buf));
settingFile.Write("\n",sizeof("\n"));
settingFile.Write("--------------------",sizeof("--------------------"));
settingFile.Write("\n",sizeof("\n"));
for (j=0;j<(pDoc->m_nLottory)[i];j++)
{
memset(buf, 0, 100);
strcpy(buf, pDoc->m_sLottoryBingo.GetAt((pDoc->m_nLottory)[2]+j));
settingFile.Write(buf, sizeof(buf));
settingFile.Write("\n",sizeof("\n"));
}
settingFile.Write("\n",sizeof("\n"));
settingFile.Write("\n",sizeof("\n"));
break;
case 2:
memset(buf, 0, 100);
strcpy(buf, "三等奖中奖名单:");
settingFile.Write(buf, sizeof(buf));
settingFile.Write("\n",sizeof("\n"));
settingFile.Write("--------------------",sizeof("--------------------"));
settingFile.Write("\n",sizeof("\n"));
for (j=0;j<(pDoc->m_nLottory)[i];j++)
{
memset(buf, 0, 100);
strcpy(buf, pDoc->m_sLottoryBingo.GetAt(j));
settingFile.Write(buf, sizeof(buf));
settingFile.Write("\n",sizeof("\n"));
}
settingFile.Write("\n",sizeof("\n"));
settingFile.Write("\n",sizeof("\n"));
break;
default:
break;
}
}
settingFile.Close();
}
else
{
MessageBox("抽奖文件建立失败!");
}
}
}
BOOL CMainFrame::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return CFrameWnd::OnEraseBkgnd(pDC);
}
void CMainFrame::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: Add your message handler code here and/or call default
CFrameWnd::OnChar(nChar, nRepCnt, nFlags);
}
// 重载从未见过的父类方法,定义主窗口标题
void CMainFrame::OnUpdateFrameTitle(BOOL NaDa)
{
CString csAppName;
csAppName.Format(AFX_IDS_APP_TITLE);
SetWindowText(csAppName);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -