// MeasureSetDlg.cpp : ʵÏÖÎļþ
|
//
|
|
#include "stdafx.h"
|
#include "BlVisionPro.h"
|
#include "MeasureSetDlg.h"
|
#include "afxdialogex.h"
|
#include "VisionRecipe.h"
|
#include "VisionSetDlg.h"
|
|
|
// CMeasureSetDlg ¶Ô»°¿ò
|
|
IMPLEMENT_DYNAMIC(CMeasureSetDlg, CDialogEx)
|
|
CMeasureSetDlg::CMeasureSetDlg(CWnd* pParent /*=NULL*/)
|
: CDialogEx(IDD_DIALOG_MEASURE_SET, pParent)
|
{
|
m_dot = NULL;
|
for (int i = 0; i < 4; i++) {
|
m_inf[i].idxRefer = 0;
|
m_inf[i].typePoint = 0;
|
m_inf[i].modePoint = 0;
|
m_inf[i].pointThres = 30;
|
m_inf[i].modeNear = 0;
|
m_inf[i].nearThres = 30;
|
}
|
|
m_firstPoint.x = 0;
|
m_firstPoint.y = 0;
|
|
m_secondPoint.x = 0;
|
m_secondPoint.y = 0;
|
}
|
|
CMeasureSetDlg::~CMeasureSetDlg()
|
{
|
}
|
|
void CMeasureSetDlg::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialogEx::DoDataExchange(pDX);
|
DDX_Control(pDX, IDC_COMBO_POINT_REFER_MEASURE, m_combPointRefer[0]);
|
DDX_Control(pDX, IDC_COMBO_POINT_TYPE_MEASURE, m_combPointType[0]);
|
DDX_Control(pDX, IDC_COMBO_START_MODE, m_combStartMode[0]);
|
DDX_Control(pDX, IDC_COMBO_END_MODE_START_MODE, m_combEndMode[0]);
|
|
DDX_Control(pDX, IDC_COMBO_POINT_REFER_MEASURE2, m_combPointRefer[1]);
|
DDX_Control(pDX, IDC_COMBO_POINT_TYPE_MEASURE2, m_combPointType[1]);
|
DDX_Control(pDX, IDC_COMBO_START_MODE2, m_combStartMode[1]);
|
DDX_Control(pDX, IDC_COMBO_END_MODE_START_MODE2, m_combEndMode[1]);
|
|
DDX_Control(pDX, IDC_COMBO_POINT_REFER_MEASURE3, m_combPointRefer[2]);
|
DDX_Control(pDX, IDC_COMBO_POINT_TYPE_MEASURE3, m_combPointType[2]);
|
DDX_Control(pDX, IDC_COMBO_START_MODE3, m_combStartMode[2]);
|
DDX_Control(pDX, IDC_COMBO_END_MODE_START_MODE3, m_combEndMode[2]);
|
|
DDX_Control(pDX, IDC_COMBO_POINT_REFER_MEASURE4, m_combPointRefer[3]);
|
DDX_Control(pDX, IDC_COMBO_POINT_TYPE_MEASURE4, m_combPointType[3]);
|
DDX_Control(pDX, IDC_COMBO_START_MODE4, m_combStartMode[3]);
|
DDX_Control(pDX, IDC_COMBO_END_MODE_START_MODE4, m_combEndMode[3]);
|
|
DDX_Text(pDX, IDC_EDIT_START_THRES_MEASURE, m_inf[0].pointThres);
|
DDX_Text(pDX, IDC_EDIT_END_THRES_MEASURE, m_inf[0].nearThres);
|
|
DDX_Text(pDX, IDC_EDIT_START_THRES_MEASURE2, m_inf[1].pointThres);
|
DDX_Text(pDX, IDC_EDIT_END_THRES_MEASURE2, m_inf[1].nearThres);
|
|
DDX_Text(pDX, IDC_EDIT_START_THRES_MEASURE3, m_inf[2].pointThres);
|
DDX_Text(pDX, IDC_EDIT_END_THRES_MEASURE3, m_inf[2].nearThres);
|
|
DDX_Text(pDX, IDC_EDIT_START_THRES_MEASURE4, m_inf[3].pointThres);
|
DDX_Text(pDX, IDC_EDIT_END_THRES_MEASURE4, m_inf[3].nearThres);
|
|
DDX_Text(pDX, IDC_EDIT_POSE_X_MEASURE, m_firstPoint.x);
|
DDX_Text(pDX, IDC_EDIT_POSE_Y_MEASURE, m_firstPoint.y);
|
|
DDX_Text(pDX, IDC_EDIT_BOT_X_MEASURE, m_secondPoint.x);
|
DDX_Text(pDX, IDC_EDIT_BOT_Y_MEASURE, m_secondPoint.y);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CMeasureSetDlg, CDialogEx)
|
ON_WM_CLOSE()
|
ON_BN_CLICKED(IDC_BUTTON_SET_TOP_MEASURE, &CMeasureSetDlg::OnBnClickedButtonSetTopMeasure)
|
ON_BN_CLICKED(IDC_BUTTON_DEL_TOP_MEASURE, &CMeasureSetDlg::OnBnClickedButtonDelTopMeasure)
|
ON_BN_CLICKED(IDC_BUTTON_SET_BOT_MEASURE, &CMeasureSetDlg::OnBnClickedButtonSetBotMeasure)
|
ON_BN_CLICKED(IDC_BUTTON_DEL_BOT_MEASURE, &CMeasureSetDlg::OnBnClickedButtonDelBotMeasure)
|
ON_BN_CLICKED(IDC_BUTTON_DRAW_ROI_MEASURE, &CMeasureSetDlg::OnBnClickedButtonDrawRoiMeasure)
|
ON_BN_CLICKED(IDC_BUTTON_DRAW_ROI_MEASURE2, &CMeasureSetDlg::OnBnClickedButtonDrawRoiMeasure2)
|
END_MESSAGE_MAP()
|
|
|
// CMeasureSetDlg ÏûÏ¢´¦Àí³ÌÐò
|
|
|
BOOL CMeasureSetDlg::PreTranslateMessage(MSG* pMsg)
|
{
|
// TODO: ÔÚ´ËÌí¼ÓרÓôúÂëºÍ/»òµ÷ÓûùÀà
|
if (pMsg->message == WM_KEYDOWN) {
|
if ((pMsg->wParam == VK_RETURN) || (pMsg->wParam == VK_ESCAPE)) {
|
return TRUE;
|
}
|
}
|
|
return CDialogEx::PreTranslateMessage(pMsg);
|
}
|
|
|
BOOL CMeasureSetDlg::OnInitDialog()
|
{
|
CDialogEx::OnInitDialog();
|
|
// TODO: ÔÚ´ËÌí¼Ó¶îÍâµÄ³õʼ»¯
|
InitControl();
|
|
ShowParamUi();
|
|
LockROI(-1);
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// Òì³£: OCX ÊôÐÔÒ³Ó¦·µ»Ø FALSE
|
}
|
|
void CMeasureSetDlg::SetDot(CCornerDistProcess *dot) {
|
/* code */
|
m_dot = dot;
|
}
|
|
void CMeasureSetDlg::InitControl(void) {
|
/* code */
|
for (int i = 0; i < 4; i++) {
|
m_combPointRefer[i].InsertString(0, _T("Affine"));
|
m_combPointRefer[i].InsertString(1, _T("Top Point"));
|
m_combPointRefer[i].InsertString(2, _T("Bot Point"));
|
m_combPointRefer[i].SetCurSel(0);
|
|
m_combPointType[i].InsertString(0, _T("Start Point"));
|
m_combPointType[i].InsertString(1, _T("End Point"));
|
m_combPointType[i].SetCurSel(0);
|
|
m_combStartMode[i].InsertString(0, _T("All"));
|
m_combStartMode[i].InsertString(1, _T("W_T_B"));
|
m_combStartMode[i].InsertString(2, _T("B_T_W"));
|
m_combStartMode[i].SetCurSel(0);
|
|
m_combEndMode[i].InsertString(0, _T("All"));
|
m_combEndMode[i].InsertString(1, _T("W_T_B"));
|
m_combEndMode[i].InsertString(2, _T("B_T_W"));
|
m_combEndMode[i].SetCurSel(0);
|
}
|
}
|
|
void CMeasureSetDlg::ShowParamUi(void) {
|
/* code */
|
if (NULL == m_dot) return;
|
|
m_firstPoint = m_dot->getPoint(4);
|
m_secondPoint = m_dot->getPoint(5);
|
|
MeasureInfo inf;
|
for (int i = 0; i < 4; i++) {
|
inf = m_dot->getMeasureInfo(i);
|
m_inf[i] = inf;
|
|
m_combPointRefer[i].SetCurSel(inf.idxRefer);
|
m_combPointType[i].SetCurSel(inf.typePoint);
|
m_combStartMode[i].SetCurSel(inf.modePoint);
|
m_combEndMode[i].SetCurSel(inf.modeNear);
|
}
|
|
UpdateData(FALSE);
|
}
|
|
void CMeasureSetDlg::SaveCornerParam(void) {
|
/* code */
|
if (NULL == m_dot) return;
|
|
UpdateData(TRUE);
|
|
m_dot->setPoint(m_firstPoint, 4);
|
m_dot->setPoint(m_secondPoint, 5);
|
|
MeasureInfo inf;
|
for (int i = 0; i < 4; i++) {
|
inf = m_inf[i];
|
inf.idxRefer = m_combPointRefer[i].GetCurSel();
|
inf.typePoint = m_combPointType[i].GetCurSel();
|
inf.modePoint = m_combStartMode[i].GetCurSel();
|
inf.modeNear = m_combEndMode[i].GetCurSel();
|
m_dot->setMeasureInfo(inf, i);
|
}
|
}
|
|
void CMeasureSetDlg::OnClose()
|
{
|
// TODO: ÔÚ´ËÌí¼ÓÏûÏ¢´¦Àí³ÌÐò´úÂëºÍ/»òµ÷ÓÃĬÈÏÖµ
|
SaveCornerParam();
|
|
CDialogEx::OnClose();
|
}
|
|
|
void CMeasureSetDlg::OnBnClickedButtonSetTopMeasure()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
}
|
|
|
void CMeasureSetDlg::OnBnClickedButtonDelTopMeasure()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
m_firstPoint.x = 0;
|
m_firstPoint.y = 0;
|
m_dot->setPoint(m_firstPoint, 4);
|
|
UpdateData(FALSE);
|
}
|
|
|
void CMeasureSetDlg::OnBnClickedButtonSetBotMeasure()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
}
|
|
|
void CMeasureSetDlg::OnBnClickedButtonDelBotMeasure()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
m_secondPoint.x = 0;
|
m_secondPoint.y = 0;
|
m_dot->setPoint(m_secondPoint, 5);
|
UpdateData(FALSE);
|
}
|
|
|
void CMeasureSetDlg::OnBnClickedButtonDrawRoiMeasure()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
CVisionSetDlg *pMainDlg = (CVisionSetDlg *)(CVisionRecipe::getInstance()->GetMainDlg());
|
if (NULL == pMainDlg) return;
|
|
LockROI(1);
|
}
|
|
void CMeasureSetDlg::LockROI(int nType) {
|
/* code */
|
if (1 == nType) {
|
GetDlgItem(IDC_BUTTON_SET_TOP_MEASURE)->EnableWindow(TRUE);
|
GetDlgItem(IDC_BUTTON_SET_BOT_MEASURE)->EnableWindow(FALSE);
|
}
|
else if (2 == nType) {
|
GetDlgItem(IDC_BUTTON_SET_TOP_MEASURE)->EnableWindow(FALSE);
|
GetDlgItem(IDC_BUTTON_SET_BOT_MEASURE)->EnableWindow(TRUE);
|
}
|
else {
|
GetDlgItem(IDC_BUTTON_SET_TOP_MEASURE)->EnableWindow(FALSE);
|
GetDlgItem(IDC_BUTTON_SET_BOT_MEASURE)->EnableWindow(FALSE);
|
}
|
}
|
|
void CMeasureSetDlg::OnBnClickedButtonDrawRoiMeasure2()
|
{
|
// TODO: ÔÚ´ËÌí¼Ó¿Ø¼þ֪ͨ´¦Àí³ÌÐò´úÂë
|
CVisionSetDlg *pMainDlg = (CVisionSetDlg *)(CVisionRecipe::getInstance()->GetMainDlg());
|
if (NULL == pMainDlg) return;
|
|
LockROI(2);
|
}
|