add: menu and toolbar icon

This commit is contained in:
liuyihui 2022-03-20 15:14:44 +08:00
parent 20dc9c6436
commit 10c387a4da
17 changed files with 353 additions and 30 deletions

52
MCA/ControlView.cpp Normal file
View File

@ -0,0 +1,52 @@
// ControlView.cpp: 实现文件
//
#include "pch.h"
#include "math.h"
#include "MCA.h"
#include "MCADoc.h"
#include "MainFrm.h"
#include "ControlView.h"
// CControlView
IMPLEMENT_DYNCREATE(CControlView, CFormView)
CControlView::CControlView()
: CFormView(IDD_DIALOG_CONTROL)
{
}
CControlView::~CControlView()
{
}
void CControlView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CControlView, CFormView)
END_MESSAGE_MAP()
// CControlView 诊断
#ifdef _DEBUG
void CControlView::AssertValid() const
{
CFormView::AssertValid();
}
#ifndef _WIN32_WCE
void CControlView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif
#endif //_DEBUG
// CControlView 消息处理程序

33
MCA/ControlView.h Normal file
View File

@ -0,0 +1,33 @@
#pragma once
// CControlView 窗体视图
class CControlView : public CFormView
{
DECLARE_DYNCREATE(CControlView)
protected:
CControlView(); // 动态创建所使用的受保护的构造函数
virtual ~CControlView();
public:
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_DIALOG_CONTROL };
#endif
#ifdef _DEBUG
virtual void AssertValid() const;
#ifndef _WIN32_WCE
virtual void Dump(CDumpContext& dc) const;
#endif
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
};

55
MCA/DetailView.cpp Normal file
View File

@ -0,0 +1,55 @@
// DetailView.cpp : 实现文件
//
#include "pch.h"
#include "MCA.h"
#include "MCADoc.h"
#include "DetailView.h"
// CDetailView
IMPLEMENT_DYNCREATE(CDetailView, CView)
CDetailView::CDetailView()
{
}
CDetailView::~CDetailView()
{
}
BEGIN_MESSAGE_MAP(CDetailView, CView)
// ON_WM_PAINT()
END_MESSAGE_MAP()
// CDetailView 绘图
void CDetailView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: 在此添加绘制代码
}
// CDetailView 诊断
#ifdef _DEBUG
void CDetailView::AssertValid() const
{
CView::AssertValid();
}
#ifndef _WIN32_WCE
void CDetailView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif
#endif //_DEBUG
// CDetailView 消息处理程序

30
MCA/DetailView.h Normal file
View File

@ -0,0 +1,30 @@
#pragma once
#include <afxwin.h>
class CDetailView :
public CView
{
protected:
DECLARE_DYNCREATE(CDetailView)
// 重写
public:
CDetailView();
virtual ~CDetailView();
public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
public:
// afx_msg void OnPaint();
};

View File

@ -43,9 +43,8 @@ CMCAApp::CMCAApp() noexcept
System::Windows::Forms::Application::SetUnhandledExceptionMode(System::Windows::Forms::UnhandledExceptionMode::ThrowException);
#endif
// TODO: 将以下应用程序 ID 字符串替换为唯一的 ID 字符串;建议的字符串格式
//为 CompanyName.ProductName.SubProduct.VersionInformation
SetAppID(_T("Tsinghua.MultichannelAnalyzer.TS01.V-0.1.0"));
// CompanyName.ProductName.SubProduct.VersionInformation
SetAppID(_T("YiHui-Liu.MultichannelAnalyzer.TS01.V-0.1.0"));
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
@ -88,18 +87,14 @@ BOOL CMCAApp::InitInstance()
// AfxInitRichEdit2();
// 标准初始化
// 如果未使用这些功能并希望减小
// 最终可执行文件的大小,则应移除下列
// 不需要的特定初始化例程
// 如果未使用这些功能并希望减小最终可执行文件的大小,则应移除下列不需要的特定初始化例程
// 更改用于存储设置的注册表项
// TODO: 应适当修改该字符串,
// 例如修改为公司或组织名
SetRegistryKey(_T("应用程序向导生成的本地应用程序"));
SetRegistryKey(_T("YiHui-Liu.MultichannelAnalyzer"));
LoadStdProfileSettings(4); // 加载标准 INI 文件选项(包括 MRU)
// 注册应用程序的文档模板。 文档模板
// 将用作文档、框架窗口和视图之间的连接
// 注册应用程序的文档模板
// 文档模板将用作文档、框架窗口和视图之间的连接
CSingleDocTemplate* pDocTemplate;
pDocTemplate = new CSingleDocTemplate(
IDR_MAINFRAME,

Binary file not shown.

View File

@ -183,6 +183,8 @@
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="ControlView.h" />
<ClInclude Include="DetailView.h" />
<ClInclude Include="framework.h" />
<ClInclude Include="MainFrm.h" />
<ClInclude Include="MCADoc.h" />
@ -191,8 +193,11 @@
<ClInclude Include="pch.h" />
<ClInclude Include="Resource.h" />
<ClInclude Include="targetver.h" />
<ClInclude Include="TotalView.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="ControlView.cpp" />
<ClCompile Include="DetailView.cpp" />
<ClCompile Include="MainFrm.cpp" />
<ClCompile Include="MCADoc.cpp" />
<ClCompile Include="MCAView.cpp" />
@ -203,6 +208,7 @@
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="TotalView.cpp" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="MCA.rc" />
@ -211,6 +217,7 @@
<None Include="res\MCA.rc2" />
</ItemGroup>
<ItemGroup>
<Image Include="..\UML\menu.bmp" />
<Image Include="res\MCA.ico" />
<Image Include="res\MCADoc.ico" />
<Image Include="res\Toolbar.bmp" />

View File

@ -39,6 +39,15 @@
<ClInclude Include="pch.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="ControlView.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="TotalView.h">
<Filter>头文件</Filter>
</ClInclude>
<ClInclude Include="DetailView.h">
<Filter>头文件</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="MCA.cpp">
@ -56,6 +65,15 @@
<ClCompile Include="pch.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="ControlView.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="TotalView.cpp">
<Filter>源文件</Filter>
</ClCompile>
<ClCompile Include="DetailView.cpp">
<Filter>源文件</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="MCA.rc">
@ -77,5 +95,8 @@
<Image Include="res\Toolbar.bmp">
<Filter>资源文件</Filter>
</Image>
<Image Include="..\UML\menu.bmp">
<Filter>资源文件</Filter>
</Image>
</ItemGroup>
</Project>

View File

@ -30,8 +30,11 @@ END_MESSAGE_MAP()
CMCADoc::CMCADoc() noexcept
{
// TODO: 在此添加一次性构造代码
m_nChannelCount = new int[m_nChannelNum];
for (int i = 0; i < m_nChannelNum; i++)
{
m_nChannelCount[i] = 0;
}
}
CMCADoc::~CMCADoc()

View File

@ -14,6 +14,8 @@ protected: // 仅从序列化创建
// 特性
public:
int m_nChannelNum = 0;
int *m_nChannelCount;
// 操作
public:

View File

@ -4,10 +4,14 @@
#include "pch.h"
#include "framework.h"
#include "MCA.h"
#include "MCA.h"
#include "MainFrm.h"
#include "ControlView.h"
#include "DetailView.h"
#include "TotalView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
@ -70,10 +74,22 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
return m_wndSplitter.Create(this,
2, 2, // TODO: 调整行数和列数
CSize(10, 10), // TODO: 调整最小窗格大小
pContext);
// 左右拆分窗口1行2列
VERIFY(m_wndSplitter.CreateStatic(this, 1, 2,
WS_CHILD | WS_VISIBLE, AFX_IDW_PANE_FIRST));
// 左侧窗口创建视图第0行第0列
VERIFY(m_wndSplitter.CreateView(0, 0,
RUNTIME_CLASS(CControlView), CSize(240, 0), pContext));
// 右侧窗口上下拆分2行1列
VERIFY(m_wndSplitter_2.CreateStatic(&m_wndSplitter, 2, 1,
WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 1)));
// 右上窗口创建视图第0行第0列
VERIFY(m_wndSplitter_2.CreateView(0, 0,
RUNTIME_CLASS(CTotalView), CSize(0, 300), pContext));
// 右下窗口创建视图第1行第0列
VERIFY(m_wndSplitter_2.CreateView(1, 0,
RUNTIME_CLASS(CDetailView), CSize(0, 0), pContext));
return TRUE;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)

View File

@ -14,6 +14,7 @@ protected: // 仅从序列化创建
// 特性
protected:
CSplitterWnd m_wndSplitter;
CSplitterWnd m_wndSplitter_2;
public:
// 操作

View File

@ -1,19 +1,46 @@
//{{NO_DEPENDENCIES}}
// 生成的 Microsoft Visual C++ 包含文件。
// MCA.rc 使用
// Microsoft Visual C++ 生成的包含文件。
// MCA.rc 使用
//
#define IDD_ABOUTBOX 100
#define IDP_OLE_INIT_FAILED 100
#define IDR_MAINFRAME 128
#define IDR_MCATYPE 130
#define IDD_ABOUTBOX 100
#define IDP_OLE_INIT_FAILED 100
#define IDR_MAINFRAME 128
#define IDR_MCATYPE 130
#define IDD_DIALOG1 310
#define IDD_DIALOG_CONTROL 310
#define ID_32786 32786
#define ID_32787 32787
#define ID_32788 32788
#define ID_32789 32789
#define ID_32790 32790
#define ID_32791 32791
#define ID_32792 32792
#define ID_32793 32793
#define ID_32794 32794
#define ID_32795 32795
#define ID_32796 32796
#define ID_32797 32797
#define ID_32798 32798
#define ID_32799 32799
#define ID_32800 32800
#define ID_32801 32801
#define ID_BUTTON32803 32803
#define ID_BUTTON32804 32804
#define ID_BUTTON32805 32805
#define ID_BUTTON32806 32806
#define ID_BUTTON32807 32807
#define ID_BUTTON32808 32808
#define ID_BUTTON32809 32809
#define ID_BUTTON32810 32810
#define ID_BUTTON32811 32811
// 新对象的下一组默认值
//
// Next default values for new objects
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 310
#define _APS_NEXT_CONTROL_VALUE 1000
#define _APS_NEXT_SYMED_VALUE 310
#define _APS_NEXT_COMMAND_VALUE 32771
#define _APS_NEXT_RESOURCE_VALUE 313
#define _APS_NEXT_COMMAND_VALUE 32812
#define _APS_NEXT_CONTROL_VALUE 1008
#define _APS_NEXT_SYMED_VALUE 310
#endif
#endif

53
MCA/TotalView.cpp Normal file
View File

@ -0,0 +1,53 @@
// TotalView.cpp : 实现文件
//
#include "pch.h"
#include "MCA.h"
#include "TotalView.h"
// CTotalView
IMPLEMENT_DYNCREATE(CTotalView, CView)
CTotalView::CTotalView()
{
}
CTotalView::~CTotalView()
{
}
BEGIN_MESSAGE_MAP(CTotalView, CView)
END_MESSAGE_MAP()
// CTotalView 绘图
void CTotalView::OnDraw(CDC* pDC)
{
CDocument* pDoc = GetDocument();
// TODO: 在此添加绘制代码
}
// CTotalView 诊断
#ifdef _DEBUG
void CTotalView::AssertValid() const
{
CView::AssertValid();
}
#ifndef _WIN32_WCE
void CTotalView::Dump(CDumpContext& dc) const
{
CView::Dump(dc);
}
#endif
#endif //_DEBUG
// CTotalView 消息处理程序

28
MCA/TotalView.h Normal file
View File

@ -0,0 +1,28 @@
#pragma once
#include <afxwin.h>
class CTotalView :
public CView
{
protected:
DECLARE_DYNCREATE(CTotalView)
// 重写
public:
CTotalView();
virtual ~CTotalView();
public:
virtual void OnDraw(CDC* pDC); // 重写以绘制该视图
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
// 生成的消息映射函数
protected:
DECLARE_MESSAGE_MAP()
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 16 KiB

BIN
UML/Class.vsdx Normal file

Binary file not shown.