// CalImageDlg.cpp: 实现文件 // #include "stdafx.h" #include "DN_sample.h" #include "afxdialogex.h" #include "CalImageDlg.h" // CalImageDlg 对话框 IMPLEMENT_DYNAMIC(CalImageDlg, CDialog) CalImageDlg::CalImageDlg(CWnd* pParent /*=nullptr*/) : CDialog(CalImageDlg::IDD, pParent) , m_img(nullptr) { //Create(IDD, pParent); } void CalImageDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); } BEGIN_MESSAGE_MAP(CalImageDlg, CDialog) ON_BN_CLICKED(IDC_BUTTON1, &CalImageDlg::OnBnClickedButton1) END_MESSAGE_MAP() // CalImageDlg 消息处理程序 BOOL CalImageDlg::OnInitDialog() { CDialog::OnInitDialog(); ModifyStyle(WS_CAPTION, 0); m_form2.Create(IDD_FORM2,this); return true; } void CalImageDlg::SetImgPos() { RECT rect; GetClientRect(&rect); rect.top += 35;//对坐标做一些微调,这35是选项卡按钮的高度 rect.left += 5;//这是边框的宽度 m_form2.SetWindowPos(NULL, 0, 0, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER); m_form2.MoveWindow(&rect); m_form2.ShowWindow(SW_SHOW); } void CalImageDlg::OnBnClickedButton1() { if (!m_img) return; if (!m_img->m_CalData) { m_img->CalDistance(); } Display(); } void CalImageDlg::OnPaint() { CDialog::OnPaint(); } void CalImageDlg::Display() { if (!m_img) return; m_form2.ShowCalImg(m_img); CStatic* sx = (CStatic*)GetDlgItem(IDC_STATIC3); CStatic* sy = (CStatic*)GetDlgItem(IDC_STATIC4); CString cstr; cstr.Format(L"%.3fmm", m_img->m_DistanceX); sx->SetWindowTextW(cstr.GetString()); cstr.Format(L"%.3fmm", m_img->m_DistanceY); sy->SetWindowTextW(cstr.GetString()); m_form2.Invalidate(); sx->Invalidate(); sy->Invalidate(); } void CalImageDlg::ClearImg() { m_form2.ClearImg(); Display(); }