-
Notifications
You must be signed in to change notification settings - Fork 4
/
HexEditCtrlView.cpp
86 lines (68 loc) · 2.33 KB
/
HexEditCtrlView.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
/////////////////////////////////////////////////////////////////////////////
// HexEditCtrlView.cpp : implementation of the CHexEditCtrlView class
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// includes
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Diskdata.h"
#include "DiskDataDoc.h"
#include "HexEditCtrlView.h"
/////////////////////////////////////////////////////////////////////////////
// defines
/////////////////////////////////////////////////////////////////////////////
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// class CHexEditCtrlView
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
IMPLEMENT_DYNCREATE(CHexEditCtrlView, CHexEditBaseView)
BEGIN_MESSAGE_MAP(CHexEditCtrlView, CHexEditBaseView)
//{{AFX_MSG_MAP(CHexEditCtrlView)
ON_EN_CHANGE(CHexEditBaseView::IDC_HEXEDITBASEVIEW_HEXCONTROL, OnHexEditChanged)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
CHexEditCtrlView::CHexEditCtrlView()
{
GetHexEditCtrl().SetAddressSize(4, false);
GetHexEditCtrl().SetShowAddress(true, false);
GetHexEditCtrl().SetShowAscii(true, false);
GetHexEditCtrl().SetBytesPerRow(16, true, true);
}
CHexEditCtrlView::~CHexEditCtrlView()
{
}
BOOL CHexEditCtrlView::PreCreateWindow(CREATESTRUCT& cs)
{
return CHexEditBaseView::PreCreateWindow(cs);
}
void CHexEditCtrlView::OnInitialUpdate()
{
CHexEditBaseView::OnInitialUpdate();
CDiskDataDoc* pDoc = (CDiskDataDoc*)GetDocument();
GetHexEditCtrl().SetDirectDataPtr(pDoc->GetData(), pDoc->GetDataSize());
}
void CHexEditCtrlView::OnHexEditChanged()
{
GetDocument()->SetModifiedFlag();
}
#ifdef _DEBUG
void CHexEditCtrlView::AssertValid() const
{
CHexEditBaseView::AssertValid();
}
void CHexEditCtrlView::Dump(CDumpContext& dc) const
{
CHexEditBaseView::Dump(dc);
}
CDiskDataDoc* CHexEditCtrlView::GetDocument()
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CDiskDataDoc)));
return (CDiskDataDoc*)m_pDocument;
}
#endif //_DEBUG