Compare commits

..

No commits in common. "05dce90378036b4106ca304c34aaa047bac7754c" and "15e3d30cdb863752c68ede00b8170a99192046c7" have entirely different histories.

6 changed files with 148 additions and 156 deletions

View File

@ -26,57 +26,60 @@ CControlView::CControlView()
, m_nCursor1(0) , m_nCursor1(0)
, m_nCursor2(1023) , m_nCursor2(1023)
, m_nCursorROI(0) , m_nCursorROI(0)
, m_nCursorROICount(0) { , m_nCursorROICount(0)
{
} }
CControlView::~CControlView() { CControlView::~CControlView()
{
} }
void CControlView::DoDataExchange(CDataExchange* pDX) { void CControlView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX); CFormView::DoDataExchange(pDX);
DDX_Text(pDX, IDC_COND, m_nCond); DDX_Text(pDX, IDC_COND, m_nCond);
DDX_Text(pDX, IDC_TIME, m_nTimeStr); DDX_Text(pDX, IDC_TIME, m_nTimeStr);
DDX_Text(pDX, IDC_TCOUNT, m_nTotalCount); DDX_Text(pDX, IDC_TCOUNT, m_nTotalCount);
DDX_Text(pDX, IDC_PCOUNT, m_nPartCount); DDX_Text(pDX, IDC_PCOUNT, m_nPartCount);
DDX_Text(pDX, IDC_MCOUNT, m_nMaxCount); DDX_Text(pDX, IDC_MCOUNT, m_nMaxCount);
DDX_Control(pDX, IDC_MODE, m_ComboMode);
DDX_Control(pDX, IDC_AXIS, m_ComboAxis);
DDX_Text(pDX, IDC_RANGE, m_nLC); DDX_Text(pDX, IDC_RANGE, m_nLC);
DDX_Text(pDX, IDC_WIDTH, m_nWidth); DDX_Text(pDX, IDC_WIDTH, m_nWidth);
DDX_Text(pDX, IDC_CURSOR1, m_nCursor1); DDX_Text(pDX, IDC_CURSOR1, m_nCursor1);
DDX_Text(pDX, IDC_CURSOR2, m_nCursor2); DDX_Text(pDX, IDC_CURSOR2, m_nCursor2);
DDX_Text(pDX, IDC_CURSORROI, m_nCursorROI); DDX_Text(pDX, IDC_CURSORROI, m_nCursorROI);
DDX_Text(pDX, IDC_CURSORROI_COUNT, m_nCursorROICount); DDX_Text(pDX, IDC_CURSORROI_COUNT, m_nCursorROICount);
DDX_Control(pDX, IDC_MODE, m_ComboMode);
DDX_Control(pDX, IDC_AXIS, m_ComboAxis);
DDX_Control(pDX, IDC_SOURCE, m_ComboSource);
} }
BEGIN_MESSAGE_MAP(CControlView, CFormView) BEGIN_MESSAGE_MAP(CControlView, CFormView)
ON_WM_SIZE() ON_WM_SIZE()
ON_CBN_SELCHANGE(IDC_SOURCE, &CControlView::OnCbnSelchangeSource)
ON_CBN_SELCHANGE(IDC_MODE, &CControlView::OnCbnSelchangeMode)
ON_CBN_SELCHANGE(IDC_AXIS, &CControlView::OnCbnSelchangeAxis)
END_MESSAGE_MAP() END_MESSAGE_MAP()
// CControlView 诊断 // CControlView 诊断
#ifdef _DEBUG #ifdef _DEBUG
void CControlView::AssertValid() const { void CControlView::AssertValid() const
{
CFormView::AssertValid(); CFormView::AssertValid();
} }
#ifndef _WIN32_WCE #ifndef _WIN32_WCE
void CControlView::Dump(CDumpContext& dc) const { void CControlView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc); CFormView::Dump(dc);
} }
#endif #endif
#endif //_DEBUG #endif //_DEBUG
void CControlView::SetCond(BOOL flag) { void CControlView::SetCond(BOOL flag)
{
((CEdit*)GetDlgItem(IDC_COND))->EnableWindow(flag); ((CEdit*)GetDlgItem(IDC_COND))->EnableWindow(flag);
} }
// CControlView 消息处理程序 // CControlView 消息处理程序
void CControlView::OnSize(UINT nType, int cx, int cy) { void CControlView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy); CFormView::OnSize(nType, cx, cy);
CRect rect; CRect rect;
GetClientRect(&rect); // 获取当前客户区view大小 GetClientRect(&rect); // 获取当前客户区view大小
@ -87,7 +90,8 @@ void CControlView::OnSize(UINT nType, int cx, int cy) {
SetScrollSizes(MM_HIMETRIC, size); // 将CScrollView的大小设置为当前客户区大小 SetScrollSizes(MM_HIMETRIC, size); // 将CScrollView的大小设置为当前客户区大小
} }
void CControlView::OnInitialUpdate() { void CControlView::OnInitialUpdate()
{
CFormView::OnInitialUpdate(); CFormView::OnInitialUpdate();
// 添加运行模式 // 添加运行模式
@ -98,47 +102,8 @@ void CControlView::OnInitialUpdate() {
m_ComboAxis.AddString((CString)"线性"); m_ComboAxis.AddString((CString)"线性");
m_ComboAxis.AddString((CString)"对数"); m_ComboAxis.AddString((CString)"对数");
m_ComboAxis.SetCurSel(0); m_ComboAxis.SetCurSel(0);
// 添加模拟源
m_ComboSource.AddString((CString)"Co60");
m_ComboSource.AddString((CString)"Cs137");
m_ComboSource.AddString((CString)"Na22");
m_ComboSource.SetCurSel(1);
} }
void CControlView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/) { void CControlView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/)
} {
void CControlView::OnCbnSelchangeSource() {
CString tmp;
CMainFrame* pFrame = (CMainFrame*)GetParentFrame();
m_ComboSource.GetWindowText(tmp);
OutputDebugString(tmp);
if (tmp != m_sSource) {
pFrame->OnStaStop();
pFrame->OnStaClear();
}
if (tmp == "Cs137") pFrame->OnSimuCsOpt();
else if (tmp == "Co60") pFrame->OnSimuCoOpt();
else pFrame->OnSimuNaOpt();
}
void CControlView::OnCbnSelchangeMode() {
CString tmp;
CMainFrame* pFrame = (CMainFrame*)GetParentFrame();
m_ComboMode.GetWindowText(tmp);
OutputDebugString(tmp);
if (tmp == "时间") m_sMode = "Time";
else m_sMode = "Count";
}
void CControlView::OnCbnSelchangeAxis() {
CString tmp;
CMainFrame* pFrame = (CMainFrame*)GetParentFrame();
m_ComboAxis.GetWindowText(tmp);
OutputDebugString(tmp);
if (tmp == "对数") pFrame->OnAxisLog();
else pFrame->OnAxisLinear();
} }

View File

@ -1,5 +1,7 @@
#pragma once #pragma once
#include "MCADoc.h"
// CControlView 窗体视图 // CControlView 窗体视图
class CControlView : public CFormView class CControlView : public CFormView
@ -34,7 +36,6 @@ public:
virtual void OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/); virtual void OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/);
// 选择信息 // 选择信息
CString m_sMode = (CString)"Time";
CString m_sSource = (CString)"Cs137"; CString m_sSource = (CString)"Cs137";
CString m_sAxisMode = (CString)"Linear"; CString m_sAxisMode = (CString)"Linear";
CString m_sRangeMode = (CString)"Auto"; CString m_sRangeMode = (CString)"Auto";
@ -60,10 +61,4 @@ public:
int m_nMaxCount; int m_nMaxCount;
CComboBox m_ComboMode; CComboBox m_ComboMode;
CComboBox m_ComboAxis; CComboBox m_ComboAxis;
CComboBox m_ComboSource;
// 下拉框选择
afx_msg void OnCbnSelchangeSource();
afx_msg void OnCbnSelchangeMode();
afx_msg void OnCbnSelchangeAxis();
}; };

Binary file not shown.

View File

@ -65,7 +65,8 @@ BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
ON_UPDATE_COMMAND_UI(ID_DATA_5, &CMainFrame::OnUpdateData5) ON_UPDATE_COMMAND_UI(ID_DATA_5, &CMainFrame::OnUpdateData5)
END_MESSAGE_MAP() END_MESSAGE_MAP()
static UINT indicators[] = { static UINT indicators[] =
{
ID_SEPARATOR, // 状态行指示器 ID_SEPARATOR, // 状态行指示器
ID_INDICATOR_CAPS, ID_INDICATOR_CAPS,
ID_INDICATOR_NUM, ID_INDICATOR_NUM,
@ -74,14 +75,17 @@ static UINT indicators[] = {
// CMainFrame 构造/析构 // CMainFrame 构造/析构
CMainFrame::CMainFrame() noexcept { CMainFrame::CMainFrame() noexcept
{
// TODO: 在此添加成员初始化代码 // TODO: 在此添加成员初始化代码
} }
CMainFrame::~CMainFrame() { CMainFrame::~CMainFrame()
{
} }
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1) if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1; return -1;
@ -112,7 +116,8 @@ int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {
} }
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext) { CCreateContext* pContext)
{
// 左右拆分窗口1行2列 // 左右拆分窗口1行2列
VERIFY(m_wndSplitter.CreateStatic(this, 1, 2, VERIFY(m_wndSplitter.CreateStatic(this, 1, 2,
WS_CHILD | WS_VISIBLE, AFX_IDW_PANE_FIRST)); WS_CHILD | WS_VISIBLE, AFX_IDW_PANE_FIRST));
@ -132,7 +137,8 @@ BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
return TRUE; return TRUE;
} }
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) ) if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE; return FALSE;
cs.style &= ~WS_THICKFRAME; cs.style &= ~WS_THICKFRAME;
@ -140,7 +146,8 @@ BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) {
return TRUE; return TRUE;
} }
void CMainFrame::OnLoadToolBarIcon() { void CMainFrame::OnLoadToolBarIcon()
{
HICON icon; HICON icon;
m_imgList.Create(50, 50, TRUE | ILC_COLOR32, 10, 0); m_imgList.Create(50, 50, TRUE | ILC_COLOR32, 10, 0);
@ -169,30 +176,35 @@ void CMainFrame::OnLoadToolBarIcon() {
// CMainFrame 诊断 // CMainFrame 诊断
#ifdef _DEBUG #ifdef _DEBUG
void CMainFrame::AssertValid() const { void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid(); CFrameWnd::AssertValid();
} }
void CMainFrame::Dump(CDumpContext& dc) const { void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc); CFrameWnd::Dump(dc);
} }
#endif //_DEBUG #endif //_DEBUG
int RoundupPowerof2(int val) { int CMainFrame::RoundupPowerof2(int val)
{
if ((val & (val - 1)) == 0) return val; if ((val & (val - 1)) == 0) return val;
int andv = 1 << 30; int andv = 1 << 30;
while ((andv & val) == 0) andv = andv >> 1; while ((andv & val) == 0) andv = andv >> 1;
return andv << 1; return andv << 1;
} }
double GetMilliTime() { double CMainFrame::GetMilliTime()
{
std::chrono::milliseconds ms = std::chrono::duration_cast<std::chrono::milliseconds>( std::chrono::milliseconds ms = std::chrono::duration_cast<std::chrono::milliseconds>(
std::chrono::system_clock::now().time_since_epoch() std::chrono::system_clock::now().time_since_epoch()
); );
return ms.count() / 1000.; return ms.count() / 1000.;
} }
void CMainFrame::UpdateValue() { void CMainFrame::UpdateValue()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -218,12 +230,14 @@ void CMainFrame::UpdateValue() {
pView->UpdateData(FALSE); pView->UpdateData(FALSE);
} }
void CMainFrame::SaveFirst() { void CMainFrame::SaveFirst()
{
int res = MessageBox(TEXT("打开前是否保存?"), TEXT("保存文件"), MB_YESNO | MB_ICONQUESTION); int res = MessageBox(TEXT("打开前是否保存?"), TEXT("保存文件"), MB_YESNO | MB_ICONQUESTION);
if (res == IDYES) OnOptSave(); if (res == IDYES) OnOptSave();
} }
void CMainFrame::SmoothThree() { void CMainFrame::SmoothThree()
{
pDoc->m_nChannelSmooth[0] = (5 * pDoc->m_nChannelCount[0] + 2 * pDoc->m_nChannelCount[1] - pDoc->m_nChannelCount[2]) / 6; pDoc->m_nChannelSmooth[0] = (5 * pDoc->m_nChannelCount[0] + 2 * pDoc->m_nChannelCount[1] - pDoc->m_nChannelCount[2]) / 6;
for (int i = 1; i < 1023; i++) for (int i = 1; i < 1023; i++)
pDoc->m_nChannelSmooth[i] = (pDoc->m_nChannelCount[i - 1] + pDoc->m_nChannelCount[i] + pDoc->m_nChannelCount[i + 1]) / 3; pDoc->m_nChannelSmooth[i] = (pDoc->m_nChannelCount[i - 1] + pDoc->m_nChannelCount[i] + pDoc->m_nChannelCount[i + 1]) / 3;
@ -231,7 +245,8 @@ void CMainFrame::SmoothThree() {
for (int i = 0; i < 1024; i++) pDoc->m_nChannelSmooth[i] = max(0, pDoc->m_nChannelSmooth[i]); for (int i = 0; i < 1024; i++) pDoc->m_nChannelSmooth[i] = max(0, pDoc->m_nChannelSmooth[i]);
} }
void CMainFrame::SmoothFive() { void CMainFrame::SmoothFive()
{
pDoc->m_nChannelSmooth[0] = (3 * pDoc->m_nChannelCount[0] + 2 * pDoc->m_nChannelCount[1] + pDoc->m_nChannelCount[2] - pDoc->m_nChannelCount[4]) / 5; pDoc->m_nChannelSmooth[0] = (3 * pDoc->m_nChannelCount[0] + 2 * pDoc->m_nChannelCount[1] + pDoc->m_nChannelCount[2] - pDoc->m_nChannelCount[4]) / 5;
pDoc->m_nChannelSmooth[1] = (4 * pDoc->m_nChannelCount[0] + 3 * pDoc->m_nChannelCount[1] + 2 * pDoc->m_nChannelCount[2] + pDoc->m_nChannelCount[3]) / 10; pDoc->m_nChannelSmooth[1] = (4 * pDoc->m_nChannelCount[0] + 3 * pDoc->m_nChannelCount[1] + 2 * pDoc->m_nChannelCount[2] + pDoc->m_nChannelCount[3]) / 10;
for (int i = 2; i < 1022; i++) for (int i = 2; i < 1022; i++)
@ -241,46 +256,17 @@ void CMainFrame::SmoothFive() {
for (int i = 0; i < 1024; i++) pDoc->m_nChannelSmooth[i] = max(0, pDoc->m_nChannelSmooth[i]); for (int i = 0; i < 1024; i++) pDoc->m_nChannelSmooth[i] = max(0, pDoc->m_nChannelSmooth[i]);
} }
void CMainFrame::OnSimuCoOpt() {
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
pView->m_sSource = (CString)"Co60";
pView->m_ComboSource.SetCurSel(0);
m_bCoFlag = FALSE;
m_bCsFlag = TRUE;
m_bNaFlag = TRUE;
}
void CMainFrame::OnSimuCsOpt() {
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
pView->m_sSource = (CString)"Cs137";
pView->m_ComboSource.SetCurSel(1);
m_bCoFlag = TRUE;
m_bCsFlag = FALSE;
m_bNaFlag = TRUE;
}
void CMainFrame::OnSimuNaOpt() {
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
pView->m_sSource = (CString)"Na22";
pView->m_ComboSource.SetCurSel(2);
m_bCoFlag = TRUE;
m_bCsFlag = TRUE;
m_bNaFlag = FALSE;
}
// CMainFrame 消息处理程序 // CMainFrame 消息处理程序
void CMainFrame::OnTimer(UINT_PTR nIDEvent) { void CMainFrame::OnTimer(UINT_PTR nIDEvent)
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
pDoc->SetModifiedFlag(TRUE); pDoc->SetModifiedFlag(TRUE);
// 判断终止 // 判断终止
if ((pView->m_sMode == "Time" && pView->m_nTime >= pView->m_nCond) || (pView->m_sMode == "Count" && pView->m_nTotalCount >= pView->m_nCond)) CString tmp;
pView->m_ComboMode.GetWindowText(tmp);
if ((tmp == "时间" && pView->m_nTime >= pView->m_nCond) || (tmp == "计数" && pView->m_nTotalCount >= pView->m_nCond))
OnStaStop(); OnStaStop();
else { else {
// 生成随机信号 // 生成随机信号
@ -291,11 +277,17 @@ void CMainFrame::OnTimer(UINT_PTR nIDEvent) {
UpdateValue(); UpdateValue();
} }
// 修改坐标轴
pView->m_ComboAxis.GetWindowText(tmp);
if (tmp == "对数") OnAxisLog();
else OnAxisLinear();
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
CFrameWnd::OnTimer(nIDEvent); CFrameWnd::OnTimer(nIDEvent);
} }
void CMainFrame::OnClose() { void CMainFrame::OnClose()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pDoc->IsModified()) { if (pDoc->IsModified()) {
int res = MessageBox(TEXT("退出前是否保存?"), TEXT("保存文件"), MB_YESNO | MB_ICONQUESTION); int res = MessageBox(TEXT("退出前是否保存?"), TEXT("保存文件"), MB_YESNO | MB_ICONQUESTION);
@ -305,7 +297,8 @@ void CMainFrame::OnClose() {
CFrameWnd::OnClose(); CFrameWnd::OnClose();
} }
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) { BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
if (pMsg->message == WM_KEYDOWN && pMsg->wParam >= 0x25 && pMsg->wParam <= 0x28) { if (pMsg->message == WM_KEYDOWN && pMsg->wParam >= 0x25 && pMsg->wParam <= 0x28) {
@ -322,7 +315,8 @@ BOOL CMainFrame::PreTranslateMessage(MSG* pMsg) {
return CFrameWnd::PreTranslateMessage(pMsg); return CFrameWnd::PreTranslateMessage(pMsg);
} }
void CMainFrame::OnOptOpen() { void CMainFrame::OnOptOpen()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -377,7 +371,8 @@ void CMainFrame::OnOptOpen() {
} }
} }
void CMainFrame::OnOptSave() { void CMainFrame::OnOptSave()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -388,9 +383,8 @@ void CMainFrame::OnOptSave() {
CString szfile = fileDlg.GetPathName(); CString szfile = fileDlg.GetPathName();
std::ofstream ofs(szfile); std::ofstream ofs(szfile);
std::string str = CStringA(pView->m_sSource);
ofs << pView->m_nTime << std::endl; ofs << pView->m_nTime << std::endl;
ofs << str.c_str() << std::endl; ofs << pView->m_sSource << std::endl;
for (int i = 0; i < 1024; i++) for (int i = 0; i < 1024; i++)
ofs << i << ", " << pDoc->m_nChannelCount[i] << std::endl; ofs << i << ", " << pDoc->m_nChannelCount[i] << std::endl;
@ -399,7 +393,8 @@ void CMainFrame::OnOptSave() {
pDoc->SetModifiedFlag(FALSE); pDoc->SetModifiedFlag(FALSE);
} }
void CMainFrame::OnStaStart() { void CMainFrame::OnStaStart()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -416,11 +411,13 @@ void CMainFrame::OnStaStart() {
SetTimer(1, 20, NULL); SetTimer(1, 20, NULL);
} }
void CMainFrame::OnUpdateStaStart(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateStaStart(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bStartFlag); pCmdUI->Enable(m_bStartFlag);
} }
void CMainFrame::OnStaStop() { void CMainFrame::OnStaStop()
{
// 设置状态 // 设置状态
m_bStartFlag = TRUE; m_bStartFlag = TRUE;
m_bStopFlag = FALSE; m_bStopFlag = FALSE;
@ -430,11 +427,13 @@ void CMainFrame::OnStaStop() {
KillTimer(1); KillTimer(1);
} }
void CMainFrame::OnUpdateStaStop(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateStaStop(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bStopFlag); pCmdUI->Enable(m_bStopFlag);
} }
void CMainFrame::OnStaClear() { void CMainFrame::OnStaClear()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -455,77 +454,99 @@ void CMainFrame::OnStaClear() {
pDoc->SetModifiedFlag(FALSE); pDoc->SetModifiedFlag(FALSE);
} }
void CMainFrame::OnUpdateStaClear(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateStaClear(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bClearFlag); pCmdUI->Enable(m_bClearFlag);
} }
void CMainFrame::OnSimuCo() { void CMainFrame::OnSimuCo()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
OnSimuCoOpt();
pView->m_sSource = (CString)"Co60";
m_bCoFlag = FALSE;
m_bCsFlag = TRUE;
m_bNaFlag = TRUE;
OnStaStop(); OnStaStop();
OnStaClear(); OnStaClear();
} }
void CMainFrame::OnUpdateSimuCo(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateSimuCo(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bCoFlag); pCmdUI->Enable(m_bCoFlag);
} }
void CMainFrame::OnSimuCs() { void CMainFrame::OnSimuCs()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
OnSimuCoOpt();
pView->m_sSource = (CString)"Cs137";
m_bCoFlag = TRUE;
m_bCsFlag = FALSE;
m_bNaFlag = TRUE;
OnStaStop(); OnStaStop();
OnStaClear(); OnStaClear();
} }
void CMainFrame::OnUpdateSimuCs(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateSimuCs(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bCsFlag); pCmdUI->Enable(m_bCsFlag);
} }
void CMainFrame::OnSimuNa() { void CMainFrame::OnSimuNa()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
OnSimuCoOpt();
pView->m_sSource = (CString)"Na22";
m_bCoFlag = TRUE;
m_bCsFlag = TRUE;
m_bNaFlag = FALSE;
OnStaStop(); OnStaStop();
OnStaClear(); OnStaClear();
} }
void CMainFrame::OnUpdateSimuNa(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateSimuNa(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bNaFlag); pCmdUI->Enable(m_bNaFlag);
} }
void CMainFrame::OnAxisLinear() { void CMainFrame::OnAxisLinear()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
pView->m_sAxisMode = (CString)"Linear"; pView->m_sAxisMode = (CString)"Linear";
pView->m_ComboAxis.SetCurSel(0);
m_bLinearFlag = FALSE; m_bLinearFlag = FALSE;
m_bLogFlag = TRUE; m_bLogFlag = TRUE;
} }
void CMainFrame::OnUpdateAxisLinear(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateAxisLinear(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bLinearFlag); pCmdUI->Enable(m_bLinearFlag);
} }
void CMainFrame::OnAxisLog() { void CMainFrame::OnAxisLog()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
pView->m_sAxisMode = (CString)"Log"; pView->m_sAxisMode = (CString)"Log";
pView->m_sRangeMode = "Auto"; pView->m_sRangeMode = "Auto";
pView->m_ComboAxis.SetCurSel(1);
m_bAutoFlag = FALSE; m_bAutoFlag = FALSE;
m_bLinearFlag = TRUE; m_bLinearFlag = TRUE;
m_bLogFlag = FALSE; m_bLogFlag = FALSE;
} }
void CMainFrame::OnUpdateAxisLog(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateAxisLog(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bLogFlag); pCmdUI->Enable(m_bLogFlag);
} }
void CMainFrame::OnRangeAuto() { void CMainFrame::OnRangeAuto()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -535,11 +556,13 @@ void CMainFrame::OnRangeAuto() {
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
} }
void CMainFrame::OnUpdateRangeAuto(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateRangeAuto(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bAutoFlag); pCmdUI->Enable(m_bAutoFlag);
} }
void CMainFrame::OnRangeD4() { void CMainFrame::OnRangeD4()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -550,7 +573,8 @@ void CMainFrame::OnRangeD4() {
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
} }
void CMainFrame::OnRangeD2() { void CMainFrame::OnRangeD2()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -561,7 +585,8 @@ void CMainFrame::OnRangeD2() {
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
} }
void CMainFrame::OnRangeM2() { void CMainFrame::OnRangeM2()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -572,7 +597,8 @@ void CMainFrame::OnRangeM2() {
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
} }
void CMainFrame::OnRangeM4() { void CMainFrame::OnRangeM4()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -583,7 +609,8 @@ void CMainFrame::OnRangeM4() {
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
} }
void CMainFrame::OnDataOrigin() { void CMainFrame::OnDataOrigin()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -595,11 +622,13 @@ void CMainFrame::OnDataOrigin() {
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
} }
void CMainFrame::OnUpdateDataOrigin(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateDataOrigin(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bOriginFlag); pCmdUI->Enable(m_bOriginFlag);
} }
void CMainFrame::OnData3() { void CMainFrame::OnData3()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -611,11 +640,13 @@ void CMainFrame::OnData3() {
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
} }
void CMainFrame::OnUpdateData3(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateData3(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bTSmoothFlag); pCmdUI->Enable(m_bTSmoothFlag);
} }
void CMainFrame::OnData5() { void CMainFrame::OnData5()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -627,11 +658,13 @@ void CMainFrame::OnData5() {
pDoc->UpdateAllViews(NULL); pDoc->UpdateAllViews(NULL);
} }
void CMainFrame::OnUpdateData5(CCmdUI* pCmdUI) { void CMainFrame::OnUpdateData5(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_bFSmoothFlag); pCmdUI->Enable(m_bFSmoothFlag);
} }
void CMainFrame::OnDataPeak() { void CMainFrame::OnDataPeak()
{
if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument(); if (pDoc == nullptr) pDoc = (CMCADoc*)GetActiveDocument();
if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView)); if (pView == nullptr) pView = (CControlView*)pDoc->GetView(RUNTIME_CLASS(CControlView));
@ -706,4 +739,4 @@ void CMainFrame::OnDataPeak() {
CString strText; CString strText;
strText.Format(_T("幅值%.3f\n均值%.3f\n标准差%.3f"), amplitude, mean, sigma); strText.Format(_T("幅值%.3f\n均值%.3f\n标准差%.3f"), amplitude, mean, sigma);
AfxMessageBox(strText); AfxMessageBox(strText);
} }

View File

@ -53,13 +53,12 @@ protected:
public: public:
CMCADoc* pDoc = nullptr; CMCADoc* pDoc = nullptr;
CControlView* pView = nullptr; CControlView* pView = nullptr;
int RoundupPowerof2(int val);
double GetMilliTime();
void UpdateValue(); void UpdateValue();
void SaveFirst(); void SaveFirst();
void SmoothThree(); void SmoothThree();
void SmoothFive(); void SmoothFive();
void OnSimuCoOpt();
void OnSimuCsOpt();
void OnSimuNaOpt();
// 消息处理 // 消息处理
afx_msg void OnTimer(UINT_PTR nIDEvent); afx_msg void OnTimer(UINT_PTR nIDEvent);

View File

@ -22,7 +22,7 @@
#define IDC_TIME 1019 #define IDC_TIME 1019
#define IDC_TCOUNT 1020 #define IDC_TCOUNT 1020
#define IDC_BCHA 1021 #define IDC_BCHA 1021
#define IDC_SOURCE 1021 #define IDC_ECHA 1022
#define IDC_CURSOR1 1023 #define IDC_CURSOR1 1023
#define IDC_CURSORROI_COUNT 1024 #define IDC_CURSORROI_COUNT 1024
#define IDC_RANGE 1025 #define IDC_RANGE 1025