-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathErrorDialog.cpp
89 lines (69 loc) · 2.28 KB
/
ErrorDialog.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
// ErrorDialog.cpp : implementation file
//
#include "stdafx.h"
#include "MWEdit.h"
#include "ErrorDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CErrorDialog dialog
CErrorDialog::CErrorDialog(CWnd* pParent) : CDialog(CErrorDialog::IDD, pParent) {
//{{AFX_DATA_INIT(CErrorDialog)
//}}AFX_DATA_INIT
m_TitleText = "Error Dialog";
m_MessageText = "";
}
void CErrorDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CErrorDialog)
DDX_Control(pDX, IDC_EDIT1, m_Text);
DDX_Control(pDX, IDC_LABEL, m_Label);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CErrorDialog, CDialog)
//{{AFX_MSG_MAP(CErrorDialog)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/*===========================================================================
*
* Class CErrorDialog Event - BOOL OnInitDialog ();
*
*=========================================================================*/
BOOL CErrorDialog::OnInitDialog() {
CErrorIncident* pError;
CErrorRecord* pErrorRecord;
TCHAR ErrorBuffer[MAX_ERROR_MESSAGESIZE+1];
int OutputErrors;
int Length;
CDialog::OnInitDialog();
SetWindowText(m_TitleText);
m_Label.SetWindowText(m_MessageText);
pError = ErrorHandler.PeekError();
OutputErrors = 0;
/* Output all required errors */
while (pError != NULL && OutputErrors < ErrorHandler.GetErrorCount()) {
pErrorRecord = ErrorDatabase.Find(pError->GetCode());
if (pErrorRecord == NULL) {
snprintf(ErrorBuffer, MAX_ERROR_MESSAGESIZE, _T("%d) %s\r\n"), OutputErrors+1,
pError->GetMsg());
}
else {
snprintf(ErrorBuffer, MAX_ERROR_MESSAGESIZE, _T("%d) %s\r\n\t%s\r\n"), OutputErrors+1,
pError->GetMsg(), pErrorRecord->GetMsg(pError->GetSubCode()));
}
Length = m_Text.GetWindowTextLength();
m_Text.SetSel(Length, Length, TRUE);
m_Text.ReplaceSel(ErrorBuffer, FALSE);
pError = pError->GetNext();
OutputErrors++;
}
m_Text.SetSel(0, 0, FALSE);
return TRUE;
}
/*===========================================================================
* End of Class Event CErrorDialog::OnInitDialog()
*=========================================================================*/