Measure/DN_sample/CalImageDlg.cpp

96 lines
1.8 KiB
C++
Raw Normal View History

2024-07-18 09:50:08 +08:00
// 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();
}