QuakeGod
2021-11-30 0ed43835e6bf40ba4d31fb6b8dc0d8400162b90a
提交 | 用户 | age
0ed438 1 // CDialogEventLog.cpp: 实现文件
Q 2 //
3
4 #include "pch.h"
5 #include "MTerm2.h"
6 #include "CDialogEventLog.h"
7 #include "afxdialogex.h"
8 #include "KLinkDefine.h"
9 #include "KLink.h"
10 #include "MTerm2Doc.h"
11 // CDialogEventLog 对话框
12
13 IMPLEMENT_DYNAMIC(CDialogEventLog, CDialogEx)
14
15 CDialogEventLog::CDialogEventLog(CWnd* pParent /*=nullptr*/)
16     : CDialogEx(IDD_DIALOG_EVENTLOG, pParent)
17 {
18
19 }
20
21 CDialogEventLog::~CDialogEventLog()
22 {
23 }
24
25 void CDialogEventLog::DoDataExchange(CDataExchange* pDX)
26 {
27     CDialogEx::DoDataExchange(pDX);
28     DDX_Control(pDX, IDC_LIST_EVENTLOG, m_list_eventlog);
29 }
30
31
32 BEGIN_MESSAGE_MAP(CDialogEventLog, CDialogEx)
33     ON_BN_CLICKED(IDC_BUTTON_CLEAR_EVENTLOG, &CDialogEventLog::OnBnClickedButtonClearEventlog)
34     ON_BN_CLICKED(IDC_BUTTON_RELOAD, &CDialogEventLog::OnBnClickedButtonReload)
35 END_MESSAGE_MAP()
36
37 KLink::stEventLog KEventLogs[20000];
38
39 // CDialogEventLog 消息处理程序
40 void CDialogEventLog::OnBnClickedButtonReload()
41 {
42     // TODO: 在此添加控件通知处理程序代码
43     GetEventLogStatus();
44     UpLoadEventLog();
45 }
46
47 void CDialogEventLog::OnBnClickedButtonClearEventlog()
48 {
49     // TODO: 在此添加控件通知处理程序代码
50 }
51
52
53 int CDialogEventLog::GetEventLogStatus()
54 {
55     // TODO: 在此处添加实现代码.
56     CMDIFrameWnd  *pFrame = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
57     CMDIChildWnd  *pChild = (CMDIChildWnd   *)pFrame->GetActiveFrame();
58     CView   *pV = (CView*)pChild->GetActiveView();
59     CMTerm2Doc* pDoc = (CMTerm2Doc *)(pV->GetDocument());
60
61     int nCount;
62     int res = pDoc->MyKLink1.GetEventLogCount(1, &nCount);
63     CString s1;
64
65     s1.Format(_T("Get EventLogCount Result r=%d  N=%d "), res, nCount);
66     SysLog(s1);
67     if (res == pDoc->MyKLink1.KL_OK)
68     {
69         s1.Format(_T("%d"), nCount);
70         GetDlgItem(IDC_EDIT_EVENT_COUNT)->SetWindowText(s1);
71     }
72
73     return 0;
74 }
75
76 int CDialogEventLog::UpLoadEventLog()
77 {
78     // TODO: 在此处添加实现代码.
79     CMDIFrameWnd  *pFrame = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd;
80     CMDIChildWnd  *pChild = (CMDIChildWnd   *)pFrame->GetActiveFrame();
81     CView   *pV = (CView*)pChild->GetActiveView();
82     CMTerm2Doc* pDoc = (CMTerm2Doc *)(pV->GetDocument());
83
84     int nCount;
85     int res = pDoc->MyKLink1.GetEventLogCount(1, &nCount);
86     CString s1;
87
88     s1.Format(_T("Get EventLogCount Result r=%d  N=%d "), res, nCount);
89     SysLog(s1);
90     if (res == pDoc->MyKLink1.KL_OK)
91     {
92         s1.Format(_T("%d"), nCount);
93         GetDlgItem(IDC_EDIT_EVENT_COUNT)->SetWindowText(s1);
94     }
95     int nStartIndex = 0;
96     int nReadCount = 1;
97     m_list_eventlog.DeleteAllItems();
98     for (int i = 0; i < nCount; i++)
99     {
100         res = pDoc->MyKLink1.GetEventLog(1, i, nReadCount, &KEventLogs[i]);
101         s1.Format(_T(" Get EventLog %d Result r=%d "),i, res);
102         s1.AppendFormat(_T("%d %d %d %d %d %d"), KEventLogs[i].Sign1, KEventLogs[i].Seq1, KEventLogs[i].nTime, KEventLogs[i].nType, KEventLogs[i].nParam1, KEventLogs[i].nParam2);
103         // SysLog(s1);
104         s1.Format(_T("%d"), i);
105         m_list_eventlog.InsertItem(i, s1);
106         s1.Format(_T("%d"), KEventLogs[i].Seq1);
107         m_list_eventlog.SetItemText(i, 1, s1);
108
109         s1.Format(_T("%d"), KEventLogs[i].nTime);
110         CTime ctime1 = KEventLogs[i].nTime;
111         s1 = ctime1.Format(_T("%Y-%m-%d %H:%M:%S"));
112
113         m_list_eventlog.SetItemText(i, 2, s1);
114         s1.Format(_T("%d"), KEventLogs[i].nType);
115         m_list_eventlog.SetItemText(i, 3, s1);
116         s1.Format(_T("%d"), KEventLogs[i].nParam1);
117         m_list_eventlog.SetItemText(i, 4, s1);
118         s1.Format(_T("%d"), KEventLogs[i].nParam2);
119         m_list_eventlog.SetItemText(i, 5, s1);
120     }
121
122     return 0;
123 }
124
125
126 BOOL CDialogEventLog::OnInitDialog()
127 {
128     CDialogEx::OnInitDialog();
129
130     // TODO:  在此添加额外的初始化
131     m_list_eventlog.SetExtendedStyle(LVS_EX_DOUBLEBUFFER | LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES | LVS_EX_ONECLICKACTIVATE | LVS_EX_LABELTIP);
132     m_list_eventlog.DeleteAllItems();
133     while (m_list_eventlog.DeleteColumn(0));
134     m_list_eventlog.InsertColumn(0, _T("NO"), LVCFMT_LEFT, 32, -1);//LVCFMT_LEFT, LVCFMT_RIGHT, or LVCFMT_CENTER
135     m_list_eventlog.InsertColumn(1, _T("序列号"), LVCFMT_LEFT, 48, -1);//LVCFMT_LEFT, LVCFMT_RIGHT, or LVCFMT_CENTER
136     m_list_eventlog.InsertColumn(2, _T("时间"), LVCFMT_LEFT, 128, -1);//LVCFMT_LEFT, LVCFMT_RIGHT, or LVCFMT_CENTER
137     m_list_eventlog.InsertColumn(3, _T("类型"), LVCFMT_LEFT, 64, -1);//LVCFMT_LEFT, LVCFMT_RIGHT, or LVCFMT_CENTER
138     m_list_eventlog.InsertColumn(4, _T("数据1"), LVCFMT_LEFT, 128, -1);//LVCFMT_LEFT, LVCFMT_RIGHT, or LVCFMT_CENTER
139     m_list_eventlog.InsertColumn(5, _T("数据2"), LVCFMT_LEFT, 128, -1);//LVCFMT_LEFT, LVCFMT_RIGHT, or LVCFMT_CENTER
140
141     GetEventLogStatus();
142     UpLoadEventLog();
143     return TRUE;  // return TRUE unless you set the focus to a control
144                   // 异常: OCX 属性页应返回 FALSE
145 }
146
147