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
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
 
// ConfigToolDoc.cpp: CConfigToolDoc 类的实现
//
 
#include "pch.h"
#include "framework.h"
// SHARED_HANDLERS 可以在实现预览、缩略图和搜索筛选器句柄的
// ATL 项目中进行定义,并允许与该项目共享文档代码。
#ifndef SHARED_HANDLERS
#include "ConfigTool.h"
#endif
 
#include "ConfigToolDoc.h"
 
#include "DialogSelDevice.h"
 
#include <propkey.h>
 
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
 
// CConfigToolDoc
 
IMPLEMENT_DYNCREATE(CConfigToolDoc, CDocument)
 
BEGIN_MESSAGE_MAP(CConfigToolDoc, CDocument)
END_MESSAGE_MAP()
 
 
// CConfigToolDoc 构造/析构
 
CConfigToolDoc::CConfigToolDoc() noexcept
{
    // TODO: 在此添加一次性构造代码
 
}
 
CConfigToolDoc::~CConfigToolDoc()
{
}
 
BOOL CConfigToolDoc::OnNewDocument()
{
 
//    INT_PTR j = AfxMessageBox(_T("新建文件"), MB_YESNO);
//    if (j != IDYES) { return FALSE; }
 
//    CDialogSelDevice dialog1;
 
//    INT_PTR r = dialog1.DoModal();
 
//    if (r != IDOK) { return FALSE; }
 
    if (!CDocument::OnNewDocument())
        return FALSE;
 
    // TODO: 在此添加重新初始化代码
    // (SDI 文档将重用该文档)
 
    return TRUE;
}
 
 
 
 
// CConfigToolDoc 序列化
 
void CConfigToolDoc::Serialize(CArchive& ar)
{
    if (ar.IsStoring())
    {
        // TODO: 在此添加存储代码
    }
    else
    {
        // TODO: 在此添加加载代码
    }
}
 
#ifdef SHARED_HANDLERS
 
// 缩略图的支持
void CConfigToolDoc::OnDrawThumbnail(CDC& dc, LPRECT lprcBounds)
{
    // 修改此代码以绘制文档数据
    dc.FillSolidRect(lprcBounds, RGB(255, 255, 255));
 
    CString strText = _T("TODO: implement thumbnail drawing here");
    LOGFONT lf;
 
    CFont* pDefaultGUIFont = CFont::FromHandle((HFONT) GetStockObject(DEFAULT_GUI_FONT));
    pDefaultGUIFont->GetLogFont(&lf);
    lf.lfHeight = 36;
 
    CFont fontDraw;
    fontDraw.CreateFontIndirect(&lf);
 
    CFont* pOldFont = dc.SelectObject(&fontDraw);
    dc.DrawText(strText, lprcBounds, DT_CENTER | DT_WORDBREAK);
    dc.SelectObject(pOldFont);
}
 
// 搜索处理程序的支持
void CConfigToolDoc::InitializeSearchContent()
{
    CString strSearchContent;
    // 从文档数据设置搜索内容。
    // 内容部分应由“;”分隔
 
    // 例如:     strSearchContent = _T("point;rectangle;circle;ole object;");
    SetSearchContent(strSearchContent);
}
 
void CConfigToolDoc::SetSearchContent(const CString& value)
{
    if (value.IsEmpty())
    {
        RemoveChunk(PKEY_Search_Contents.fmtid, PKEY_Search_Contents.pid);
    }
    else
    {
        CMFCFilterChunkValueImpl *pChunk = nullptr;
        ATLTRY(pChunk = new CMFCFilterChunkValueImpl);
        if (pChunk != nullptr)
        {
            pChunk->SetTextValue(PKEY_Search_Contents, value, CHUNK_TEXT);
            SetChunkValue(pChunk);
        }
    }
}
 
#endif // SHARED_HANDLERS
 
// CConfigToolDoc 诊断
 
#ifdef _DEBUG
void CConfigToolDoc::AssertValid() const
{
    CDocument::AssertValid();
}
 
void CConfigToolDoc::Dump(CDumpContext& dc) const
{
    CDocument::Dump(dc);
}
#endif //_DEBUG
 
 
// CConfigToolDoc 命令
 
 
void CConfigToolDoc::OnCloseDocument()
{
    // TODO: 在此添加专用代码和/或调用基类
//    AfxMessageBox(_T("是否确定关闭?"));
    CDocument::OnCloseDocument();
}
 
 
BOOL CConfigToolDoc::SaveModified()
{
    // TODO: 在此添加专用代码和/或调用基类
    //INT_PTR r = AfxMessageBox(_T("是否确定关闭当前文档 ?"),MB_YESNO);
    //if (r != IDYES) return false;
    return CDocument::SaveModified();
}