123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- // CImageViewDlg.cpp: 实现文件
- //
- #include "pch.h"
- #include "resource.h"
- #include "CImageViewDlg.h"
- #include "afxdialogex.h"
- // CImageViewDlg 对话框
- IMPLEMENT_DYNAMIC(CImageViewDlg, CDialogEx)
- CImageViewDlg::CImageViewDlg(CWnd* pParent /*=nullptr*/)
- : CDialogEx(IDD_CImageViewDlg, pParent)
- {
- m_pImageView = nullptr;
- m_bBtnVisable = false;
- m_bStrFlag = FALSE;
- m_strNote = "";
- }
- CImageViewDlg::~CImageViewDlg()
- {
- }
- BOOL CImageViewDlg::OnInitDialog()
- {
- CDialogEx::OnInitDialog();
- m_pImageView = new CImageView();
- m_pImageView->SubclassDlgItem(IDC_STATIC_IMG, this);
- m_pImageView->SetImageData(m_pdata, m_nwidth, m_nheight, 16);
- CString strShow;
- strShow.Format("%d", ShowAllAverage(m_pdata, m_nwidth, m_nheight));
- m_editAllAverage.SetWindowText(strShow);
- if (m_bStrFlag)
- {
- m_static_errornote.SetWindowText(m_strNote);
- m_btn_Accept.EnableWindow(FALSE);
- }
- else
- {
- m_strNote.Format("DV is Advisable");
- m_static_errornote.SetWindowText(m_strNote);
- }
- if (!m_bBtnVisable)
- {
- CString strclose = "close";
- m_btn_Accept.SetWindowText(strclose);
- m_btn_Reject.ShowWindow(SW_HIDE);
- m_static_errornote.ShowWindow(SW_HIDE);
- }
- m_bBtnVisable = true;
- return TRUE;
- }
- void CImageViewDlg::DoDataExchange(CDataExchange* pDX)
- {
- CDialogEx::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_EDIT_ALL_AVERAGE, m_editAllAverage);
- DDX_Control(pDX, IDC_EDIT_ROI_AVERAGE, m_edtROIAverage);
- DDX_Control(pDX, IDC_STATIC_ERRORNOTE, m_static_errornote);
- DDX_Control(pDX, IDC_BUTTON_ACCEPT, m_btn_Accept);
- DDX_Control(pDX, IDC_BUTTON_REJECT, m_btn_Reject);
- }
- BEGIN_MESSAGE_MAP(CImageViewDlg, CDialogEx)
- ON_MESSAGE(MSG_RETANGE, UpDataAverage)
- ON_BN_CLICKED(IDC_BUTTON_ACCEPT, &CImageViewDlg::OnBnClickedButtonAccept)
- ON_BN_CLICKED(IDC_BUTTON_REJECT, &CImageViewDlg::OnBnClickedButtonReject)
- END_MESSAGE_MAP()
- // CImageViewDlg 消息处理程序
- LRESULT CImageViewDlg::UpDataAverage(WPARAM wParam, LPARAM lParam)
- {
- CString strShow;
- strShow.Format("%d", *(int*)lParam);
- m_edtROIAverage.SetWindowText(strShow);
- return 0;
- }
- int CImageViewDlg::ShowAllAverage(unsigned short* data, int width, int height)
- {
- int all = width * height;
- double total = 0;
- for (int i = 0; i < all; ++i)
- {
- total += (data[i]);
- }
- return total / all;
- }
- int CImageViewDlg::ShowROIAverage(unsigned short* data, int width, int height, int left, int top, int right, int bottom)
- {
- int average = 0;
- double total = 0;
- int count = 0;
- for (int i = top; i < bottom; ++i)
- {
- for (int j = left; j < right; ++j)
- {
- total += data[i * width + j];
- count++;
- }
- }
- average = total / count;
- return average;
- }
- void CImageViewDlg::SetBtnVisable(bool bVisable)
- {
- m_bBtnVisable = bVisable;
- }
- void CImageViewDlg::OnBnClickedButtonAccept()
- {
- if (m_pImageView)
- {
- delete m_pImageView;
- m_pImageView = NULL;
- }
- delete[] m_pdata;
- m_pdata = NULL;
- CDialog::OnOK();
- }
- void CImageViewDlg::OnBnClickedButtonReject()
- {
- if (m_pImageView)
- {
- delete m_pImageView;
- m_pImageView = NULL;
- }
- CDialog::OnCancel();
- }
|