📄 alermview.cpp
字号:
// ALERMView.cpp : implementation of the CALERMView class
//
#include "stdafx.h"
#include "ALERM.h"
#include "ALERMSet.h"
#include "ALERMDoc.h"
#include "ALERMView.h"
#include"taskdlg.h"
#include"math.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
float angle=0;
double PI=3.141592653;
POINT centerpos;
POINT timepos;
POINT now_h,now_m,now_s;
char Title[50];
int Len=0,i=0;
int halfflag=0,intflag=0;
CString NowTime="";
SYSTEMTIME time0;
CTime m_now;
int flag=0;
int timenumber=0,pixelpos=0;
char timeword[2];
RECT rc;
long nowID=0;
int IDCount;
typedef struct
{
int hour,minute,second;
long id;
CString context;
BOOL power;
}ALERM;
ALERM alerm[600];
/////////////////////////////////////////////////////////////////////////////
// CALERMView
IMPLEMENT_DYNCREATE(CALERMView, CRecordView)
BEGIN_MESSAGE_MAP(CALERMView, CRecordView)
//{{AFX_MSG_MAP(CALERMView)
ON_BN_CLICKED(IDC_btn_DELETE, OnbtnDELETE)
ON_BN_CLICKED(IDC_btn_EDIT, OnbtnEDIT)
ON_BN_CLICKED(IDC_btn_NEW, OnbtnNEW)
ON_BN_CLICKED(IDC_SEPROTER, OnSeproter)
ON_WM_PAINT()
ON_WM_TIMER()
ON_WM_CREATE()
ON_WM_MOUSEMOVE()
ON_BN_CLICKED(IDC_POWER, OnPower)
ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)
ON_COMMAND(IDM_DELETE, OnDelete)
ON_NOTIFY(NM_DBLCLK, IDC_LIST1, OnDblclkList1)
ON_COMMAND(IDM_EDIT, OnEdit)
ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)
ON_COMMAND(ID_FILE_NEW, OnFileNew)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CALERMView construction/destruction
CALERMView::CALERMView()
: CRecordView(CALERMView::IDD)
{
//{{AFX_DATA_INIT(CALERMView)
m_pSet = NULL;
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CALERMView::~CALERMView()
{
}
void CALERMView::DoDataExchange(CDataExchange* pDX)
{
CRecordView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CALERMView)
DDX_Control(pDX, IDC_LIST1, m_Report);
DDX_Control(pDX, IDC_MSFLEXGRID1, m_LIST);
DDX_FieldText(pDX, IDC_EDIT1, m_pSet->m___ID, m_pSet);
DDX_FieldText(pDX, IDC_EDIT2, m_pSet->m_column1, m_pSet);
DDX_FieldText(pDX, IDC_EDIT3, m_pSet->m_column2, m_pSet);
DDX_FieldText(pDX, IDC_EDIT4, m_pSet->m_column3, m_pSet);
DDX_FieldText(pDX, IDC_EDIT5, m_pSet->m_column4, m_pSet);
DDX_FieldCheck(pDX, IDC_POWER, m_pSet->m_column5, m_pSet);
//}}AFX_DATA_MAP
}
BOOL CALERMView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CRecordView::PreCreateWindow(cs);
}
void CALERMView::OnInitialUpdate()
{
m_pSet = &GetDocument()->m_aLERMSet;
CRecordView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
/* while(!m_pSet->IsEOF())
{
m_pSet->MoveNext();
m_pSet->GetRecordCount();
}
m_pSet->MoveFirst();
m_LIST.SetCols(5);
m_LIST.SetRows(m_pSet->GetRecordCount()+1);
m_LIST.SetColWidth(-1,800);
m_LIST.SetColWidth(4,4000);
m_LIST.SetRow(0);
m_LIST.SetCol(0);
m_LIST.SetText("闹钟");
m_LIST.SetRow(0);
m_LIST.SetCol(1);
m_LIST.SetText("闹钟-时");
m_LIST.SetRow(0);
m_LIST.SetCol(2);
m_LIST.SetText("闹钟-分");
m_LIST.SetRow(0);
m_LIST.SetCol(3);
m_LIST.SetText("闹钟-秒");
m_LIST.SetRow(0);
m_LIST.SetCol(4);
m_LIST.SetText("提醒内容");
int iRow=1;
while(!m_pSet->IsEOF())
{
CString str;
str.Format("闹钟%d",m_pSet->m___ID);
m_LIST.SetCol(0);
m_LIST.SetRow(iRow);
m_LIST.SetText(str);
CString temp1;
temp1.Format("%d",m_pSet->m_column1);
m_LIST.SetRow(iRow);
m_LIST.SetCol(1);
m_LIST.SetText(temp1);
m_LIST.SetRow(iRow);
CString temp2;
temp2.Format("%d",m_pSet->m_column2);
m_LIST.SetRow(iRow);
m_LIST.SetCol(2);
m_LIST.SetText(temp2);
CString temp3;
temp3.Format("%d",m_pSet->m_column3);
m_LIST.SetRow(iRow);
m_LIST.SetCol(3);
m_LIST.SetText(temp3);
CString temp4;
temp2.Format("%d",m_pSet->m_column4);
m_LIST.SetRow(iRow);
m_LIST.SetCol(3);
m_LIST.SetText(temp4);
m_LIST.SetRow(iRow);
m_LIST.SetCol(4);
m_LIST.SetText(m_pSet->m_column4);
iRow++;
m_pSet->MoveNext();
}
m_LIST.SetRow(1);
m_LIST.SetCol(1);
m_pSet->MoveFirst();
*/
DWORD dwStyle;
dwStyle = m_Report.GetStyle();
dwStyle |= LVS_EX_GRIDLINES |LVS_EX_FULLROWSELECT|LVS_SHOWSELALWAYS ;
m_Report.SetExtendedStyle(dwStyle);
m_Report.SetBkColor(RGB(240,247,233));
m_Report.SetTextBkColor(RGB(240,247,233));
if(flag==0)
{
m_Report.InsertColumn(0,"闹钟ID",LVCFMT_LEFT,50,0);//设置列
m_Report.InsertColumn(1,"闹钟-时",LVCFMT_LEFT,80,1);
m_Report.InsertColumn(2,"闹钟-分",LVCFMT_LEFT,80,2);
m_Report.InsertColumn(3,"闹钟-秒",LVCFMT_LEFT,80,3);
m_Report.InsertColumn(4,"提醒内容",LVCFMT_LEFT,300,4);
flag=1;
}
m_pSet->MoveLast();
while(!m_pSet->IsBOF())
{
m_pSet->GetRecordCount();
CString str0;
str0.Format("%d",m_pSet->m___ID);
m_Report.InsertItem(0,str0);//插入行
CString str1;
str1.Format("%d",m_pSet->m_column1);
m_Report.SetItemText(0,1,str1);//设置该行的不同列的显示字符
CString str2;
str2.Format("%d",m_pSet->m_column2);
m_Report.SetItemText(0,2,str2);
CString str3;
str3.Format("%d",m_pSet->m_column3);
m_Report.SetItemText(0,3,str3);
m_Report.SetItemText(0,4,m_pSet->m_column4);
m_pSet->MovePrev();
}
/* m_Report.SetRow(0);
m_Report.SetCol(0);
m_Report.SetText("闹钟");
int iRow=1;
while(!m_pSet->IsEOF())
{
CString str;
str.Format("闹钟%d",m_pSet->m___ID);
m_Report.SetCol(0);
m_Report.SetRow(iRow);
m_Report.SetText(str);
CString temp1;
temp1.Format("%d",m_pSet->m_column1);
m_Report.SetRow(iRow);
m_Report.SetCol(1);
m_Report.SetText(temp1);
m_Report.SetRow(iRow);
iRow++;
m_pSet->MoveNext();
}*/
}
/////////////////////////////////////////////////////////////////////////////
// CALERMView printing
BOOL CALERMView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CALERMView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CALERMView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CALERMView diagnostics
#ifdef _DEBUG
void CALERMView::AssertValid() const
{
CRecordView::AssertValid();
}
void CALERMView::Dump(CDumpContext& dc) const
{
CRecordView::Dump(dc);
}
CALERMDoc* CALERMView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CALERMDoc)));
return (CALERMDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CALERMView database support
CRecordset* CALERMView::OnGetRecordset()
{
return m_pSet;
}
/////////////////////////////////////////////////////////////////////////////
// CALERMView message handlers
void CALERMView::OnbtnDELETE()
{
// TODO: Add your control notification handler code here
if(!m_pSet->IsEOF()&&IDYES==MessageBox("真的要删除这组闹钟吗?","提示",MB_YESNO))
{
m_pSet->Delete();
MessageBox("成功删除一组闹钟");
m_pSet->Requery();
UpdateData(FALSE);
CRecordsetStatus rStatus;
m_pSet->GetStatus(rStatus);
initial();
m_pSet->SetAbsolutePosition(rStatus.m_lCurrentRecord+1);
m_Report.DeleteAllItems();
OnInitialUpdate();
}
}
void CALERMView::OnbtnEDIT()
{
// TODO: Add your control notification handler code here
CTASKDLG samdlg;
nowID=m_pSet->m___ID;
samdlg.m_ID=m_pSet->m___ID;
samdlg.m_HOUR=m_pSet->m_column1;
samdlg.m_MINUTE=m_pSet->m_column2;
samdlg.m_SECOND=m_pSet->m_column3;
samdlg.m_CONTEXT=m_pSet->m_column4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -