// DlgDefectFilter.cpp : 구현 파일입니다.
|
//
|
|
#include "stdafx.h"
|
#include "ReviewSystem.h"
|
#include "DlgDefectFilter.h"
|
#include "CHCommonControls/GridCellCheck.h"
|
#include "MainFrm.h"
|
|
#include "CHReviewSetting/SystemInfo.h"
|
#include "DlgUpdateNote.h"
|
#pragma comment(lib, "uxtheme.lib")
|
// CDlgDefectFilter 대화 상자입니다.
|
|
IMPLEMENT_DYNAMIC(CDlgDefectFilter, CDialog)
|
|
CDlgDefectFilter::CDlgDefectFilter(CWnd* pParent /*=NULL*/)
|
: CDialog(CDlgDefectFilter::IDD, pParent)
|
, m_strMachineType(_T(""))
|
{
|
m_pDDF2P = NULL;
|
m_pGlassResult = NULL;
|
m_strProgramVersion = _T("");
|
m_nDefectFilter = DefectType_Gray;
|
m_RowColor[0] = RGB(245, 152, 177);
|
m_RowColor[1] = RGB(162, 162, 0);
|
m_RowColor[2] = RGB(220,20,220);
|
m_RowColor[3] = RGB(20,220,220);
|
m_CheckValue[0] = 1;
|
m_CheckValue[1] = 1;
|
m_CheckValue[2] = 0;
|
m_CheckValue[3] = 0;
|
|
m_nMachineType = -1;
|
}
|
|
CDlgDefectFilter::~CDlgDefectFilter()
|
{
|
}
|
|
void CDlgDefectFilter::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialog::DoDataExchange(pDX);
|
DDX_Control(pDX, IDC_GRID_MAP_OPTION, m_ctrlGridDefectFilter);
|
DDX_Radio(pDX, IDC_RADIO_MAP_TYPE_0, m_nDefectFilter);
|
DDX_Control(pDX, IDC_STATIC_VERSION, m_ctrlVersion);
|
|
DDX_Control(pDX, IDC_STATIC_REVIEWED_DEFECT, m_ctrlReviewedCount);
|
DDX_Control(pDX, IDC_STATIC_REVIEW_DEFECT, m_ctrlReviewCount);
|
DDX_Control(pDX, IDC_STATIC_WSIED_DEFECT, m_ctrlWsiedCount);
|
DDX_Control(pDX, IDC_STATIC_WSI_DEFECT, m_ctrlWsiCount);
|
DDX_Control(pDX, IDC_STATIC_TOTAL_DEFECT, m_ctrlTotalCount);
|
|
//DDX_Control(pDX, IDC_CHECK_USE_WSI, m_ctrlUseWSI);
|
//DDX_Control(pDX, IDC_CHECK_USE_WSI_MEASUREMENT, m_ctrlUseWSIMeasurement);
|
|
//DDX_Control(pDX, IDC_CHECK_DRAW_CELL, m_ctrlDraw[MapDrawCell]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_DEFECT, m_ctrlDraw[MapDrawDefect]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_REVIEW_DEFECT, m_ctrlDraw[MapDrawReviewDefect]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_REVIEW_PATH, m_ctrlDraw[MapDrawReviewPath]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_WSI_DEFECT, m_ctrlDraw[MapDrawWsiDefect]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_WSI_PATH, m_ctrlDraw[MapDrawWsiPath]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_WSI_DEFECT, m_ctrlDraw[MapDrawWsiDefect]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_USER_PATH, m_ctrlDraw[MapDrawUserPath]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_MEASURE_PATH, m_ctrlDraw[MapDrawMeasurePath]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_SELECTED_DEFECT, m_ctrlDraw[MapDrawSelectedDefect]);
|
//DDX_Control(pDX, IDC_CHECK_DRAW_CAMERA_POSITION, m_ctrlDraw[MapDrawCameraPosition]);
|
DDX_Control(pDX, IDC_BUTTON_VERSION, m_btnctrlVersion);
|
DDX_Control(pDX, IDC_STATIC_MACHINETYPE, m_staticMachineType);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CDlgDefectFilter, CDialog)
|
ON_BN_CLICKED(IDC_RADIO_MAP_TYPE_0, &CDlgDefectFilter::OnBnClickedRadioDefectFilter)
|
ON_BN_CLICKED(IDC_RADIO_MAP_TYPE_1, &CDlgDefectFilter::OnBnClickedRadioDefectFilter)
|
ON_BN_CLICKED(IDC_RADIO_MAP_TYPE_2, &CDlgDefectFilter::OnBnClickedRadioDefectFilter)
|
ON_BN_CLICKED(IDC_RADIO_MAP_TYPE_3, &CDlgDefectFilter::OnBnClickedRadioDefectFilter)
|
ON_BN_CLICKED(IDC_RADIO_MAP_TYPE_4, &CDlgDefectFilter::OnBnClickedRadioDefectFilter)
|
ON_BN_CLICKED(IDC_RADIO_MAP_TYPE_5, &CDlgDefectFilter::OnBnClickedRadioDefectFilter)
|
// ON_WM_TIMER()
|
ON_MESSAGE(UM_DEFECT_FILTER_UPDATE, &CDlgDefectFilter::OnDefectFilterUpdate)
|
ON_MESSAGE(UM_REVIEW_RESULT_UPDATE, &CDlgDefectFilter::OnReviewResultUpdate)
|
ON_MESSAGE(UM_WSI_RESULT_UPDATE, &CDefectMap::OnReviewResultUpdate)//1218
|
|
ON_BN_CLICKED(IDC_CHECK_USE_WSI, &CDlgDefectFilter::OnBnClickedCheckUseWSI)
|
ON_BN_CLICKED(IDC_CHECK_USE_WSI_MEASUREMENT, &CDlgDefectFilter::OnBnClickedCheckUseWSIMeasurement)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_CELL, &CDlgDefectFilter::OnBnClickedCheckDrawCell)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_DEFECT, &CDlgDefectFilter::OnBnClickedCheckDrawDefect)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_REVIEW_DEFECT, &CDlgDefectFilter::OnBnClickedCheckDrawReviewDefect)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_REVIEW_PATH, &CDlgDefectFilter::OnBnClickedCheckDrawReviewPath)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_SELECTED_DEFECT, &CDlgDefectFilter::OnBnClickedCheckDrawSelectedDefect)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_CAMERA_POSITION, &CDlgDefectFilter::OnBnClickedCheckDrawCameraPosition)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_WSI_DEFECT, &CDlgDefectFilter::OnBnClickedCheckDrawWsiDefect)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_WSI_PATH, &CDlgDefectFilter::OnBnClickedCheckDrawWsiPath)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_USER_PATH, &CDlgDefectFilter::OnBnClickedCheckDrawUserPath)
|
ON_BN_CLICKED(IDC_CHECK_DRAW_MEASURE_PATH, &CDlgDefectFilter::OnBnClickedCheckDrawMeasurePath)
|
ON_BN_CLICKED(IDC_BUTTON_VERSION, &CDlgDefectFilter::OnBnClickedButtonVersion)
|
// ON_WM_ERASEBKGND()
|
// ON_WM_CTLCOLOR()
|
//ON_WM_ERASEBKGND()
|
//ON_WM_CTLCOLOR()
|
ON_WM_ERASEBKGND()
|
ON_WM_CTLCOLOR()
|
ON_WM_ERASEBKGND()
|
ON_WM_CTLCOLOR()
|
END_MESSAGE_MAP()
|
|
|
// CDlgDefectFilter 메시지 처리기입니다.
|
|
BOOL CDlgDefectFilter::OnInitDialog()
|
{
|
CDialog::OnInitDialog();
|
|
{
|
|
_GroupCtrlOption op = m_ctrlGroupCtrlObjectShow.getCtrlOption();
|
op.nStyle = 1;
|
op.nStyleSub = 0;
|
op.nFontSize = 15;
|
op.nTextPosX = 20;
|
op.nTextPosY = 3;
|
op.clrTitle = RGB(50,50,50);
|
op.clrOutline = RGB(86,86,86);
|
op.clrFontNormal = RGB(255,255,255);
|
op.nTitleHeight = 24;
|
m_ctrlGroupCtrlObjectShow.setCtrlOption(op);
|
m_ctrlGroupCtrlObjectShow.addControl(IDC_STATIC_OBJECT_SHOW, this);
|
|
|
|
m_ctrlGroupCtrlReviewDoDone.setCtrlOption(op);
|
|
m_ctrlGroupCtrlReviewDoDone.addControl(IDC_STATIC_REVIEW_DODONE, this);
|
|
m_ctrlGroupCtrlDefectType.setCtrlOption(op);
|
|
m_ctrlGroupCtrlDefectType.addControl(IDC_STATIC_DEFECT_TYPE, this);
|
|
|
}
|
|
{
|
_ColorButtonOption op = m_ctrlDrawCell.getCtrlOption();
|
op.nStyle = 1;
|
op.nEdgeStyle = 1;
|
op.clrButtonShow = RGB(50,50,50);
|
op.clrFontNormal = RGB(255,255,255);
|
op.clrFontPush = RGB(255,255,255);
|
m_ctrlDrawCell.setCtrlOption(op);
|
m_ctrlDrawCell.addControl(IDC_CHECK_DRAW_CELL, this);
|
|
m_ctrlBtDrawDefect.setCtrlOption(op);
|
m_ctrlBtDrawDefect.addControl(IDC_CHECK_DRAW_DEFECT, this);
|
|
m_ctrlBtDrawReviewPath.setCtrlOption(op);
|
m_ctrlBtDrawReviewPath.addControl(IDC_CHECK_DRAW_REVIEW_PATH, this);
|
|
m_ctrlBtDrawUserPath.setCtrlOption(op);
|
m_ctrlBtDrawUserPath.addControl(IDC_CHECK_DRAW_USER_PATH, this);
|
|
m_ctrlBtDrawWsiDefect.setCtrlOption(op);
|
m_ctrlBtDrawWsiDefect.addControl(IDC_CHECK_DRAW_WSI_DEFECT, this);
|
|
m_ctrlBtDrawWsiPath.setCtrlOption(op);
|
m_ctrlBtDrawWsiPath.addControl(IDC_CHECK_DRAW_WSI_PATH, this);
|
|
m_ctrlBtUseWsi.setCtrlOption(op);
|
m_ctrlBtUseWsi.addControl(IDC_CHECK_USE_WSI, this);
|
|
m_ctrlBtUseWsiMeasurement.setCtrlOption(op);
|
m_ctrlBtUseWsiMeasurement.addControl(IDC_CHECK_USE_WSI_MEASUREMENT, this);
|
|
|
m_ctrlBtReviewDefect.setCtrlOption(op);
|
m_ctrlBtReviewDefect.addControl(IDC_CHECK_DRAW_REVIEW_DEFECT, this);
|
|
m_ctrlBtSelected_Defect.setCtrlOption(op);
|
m_ctrlBtSelected_Defect.addControl(IDC_CHECK_DRAW_SELECTED_DEFECT, this);
|
|
m_ctrlBtCameraPos.setCtrlOption(op);
|
m_ctrlBtCameraPos.addControl(IDC_CHECK_DRAW_CAMERA_POSITION, this);
|
|
m_ctrlBtMeasurePath.setCtrlOption(op);
|
m_ctrlBtMeasurePath.addControl(IDC_CHECK_DRAW_MEASURE_PATH, this);
|
}
|
|
|
m_ctrlDraw[MapDrawCell] = m_ctrlDrawCell.GetDlgItem(IDC_CHECK_DRAW_CELL);
|
m_ctrlDraw[MapDrawDefect]= m_ctrlBtDrawDefect.GetDlgItem(IDC_CHECK_DRAW_DEFECT);
|
|
m_ctrlDraw[MapDrawReviewPath]= m_ctrlBtDrawReviewPath.GetDlgItem(IDC_CHECK_DRAW_REVIEW_PATH);
|
m_ctrlDraw[MapDrawWsiPath]= m_ctrlBtDrawWsiPath.GetDlgItem(IDC_CHECK_DRAW_WSI_PATH);
|
m_ctrlDraw[MapDrawWsiDefect]= m_ctrlBtDrawWsiDefect.GetDlgItem(IDC_CHECK_DRAW_WSI_DEFECT);
|
m_ctrlDraw[MapDrawUserPath]= m_ctrlBtDrawUserPath.GetDlgItem(IDC_CHECK_DRAW_USER_PATH);
|
|
|
|
|
m_ctrlDraw[MapDrawReviewDefect] = m_ctrlBtReviewDefect.GetDlgItem(IDC_CHECK_DRAW_REVIEW_DEFECT);
|
m_ctrlDraw[MapDrawSelectedDefect]= m_ctrlBtSelected_Defect.GetDlgItem(IDC_CHECK_DRAW_SELECTED_DEFECT);
|
m_ctrlDraw[MapDrawCameraPosition] = m_ctrlBtCameraPos.GetDlgItem(IDC_CHECK_DRAW_CAMERA_POSITION);
|
m_ctrlDraw[MapDrawMeasurePath]= m_ctrlBtMeasurePath.GetDlgItem(IDC_CHECK_DRAW_MEASURE_PATH);
|
|
|
m_ctrlUseWSI=m_ctrlBtUseWsi.GetDlgItem(IDC_CHECK_USE_WSI);
|
m_ctrlUseWSIMeasurement=m_ctrlBtUseWsiMeasurement.GetDlgItem(IDC_CHECK_USE_WSI_MEASUREMENT);
|
|
if(m_pDDF2P)
|
{
|
m_strProgramVersion = m_pDDF2P->DDF2P_GetProgramVersion();
|
}
|
|
m_btnctrlVersion.SetWindowText(m_strProgramVersion);
|
|
// 20160818
|
for (int i=0; i<MapDrawCount; i++)
|
{
|
if(i==8 ||i==10 ||i==12||i==13 || i == 14 || i == 15 || i == 16){
|
continue; //없음
|
}
|
|
if(m_ctrlDraw[i]->m_hWnd == NULL)
|
continue;
|
|
m_ctrlDraw[i]->SetCheck(m_sDefectFilter.pDraw[i]);
|
}
|
|
SetWindowTheme(GetDlgItem(IDC_RADIO_MAP_TYPE_0)->GetSafeHwnd(), (LPCWSTR)TEXT(""), (LPCWSTR)TEXT(""));
|
SetWindowTheme(GetDlgItem(IDC_RADIO_MAP_TYPE_1)->GetSafeHwnd(), (LPCWSTR)TEXT(""), (LPCWSTR)TEXT(""));
|
SetWindowTheme(GetDlgItem(IDC_RADIO_MAP_TYPE_2)->GetSafeHwnd(), (LPCWSTR)TEXT(""), (LPCWSTR)TEXT(""));
|
SetWindowTheme(GetDlgItem(IDC_RADIO_MAP_TYPE_3)->GetSafeHwnd(),(LPCWSTR) TEXT(""), (LPCWSTR)TEXT(""));
|
SetWindowTheme(GetDlgItem(IDC_RADIO_MAP_TYPE_4)->GetSafeHwnd(), (LPCWSTR)TEXT(""), (LPCWSTR)TEXT(""));
|
|
|
m_ctrlReviewedCount.SetFontStatic(_T("Arial"), 20, RGB(255,255,0), FS_BOLD | FS_ANTIALIAS | FS_CENTER);
|
m_ctrlReviewedCount.SetBackground(RGB(0,0,0));
|
m_ctrlReviewedCount.SetWindowText(_T("00"));
|
|
m_ctrlReviewCount.SetFontStatic(_T("Arial"), 20, RGB(0,255,0), FS_BOLD | FS_ANTIALIAS | FS_CENTER);
|
m_ctrlReviewCount.SetBackground(RGB(0,0,0));
|
m_ctrlReviewCount.SetWindowText(_T("00"));
|
|
m_ctrlWsiedCount.SetFontStatic(_T("Arial"), 20, RGB(255,255,0), FS_BOLD | FS_ANTIALIAS | FS_CENTER);
|
m_ctrlWsiedCount.SetBackground(RGB(0,0,0));
|
m_ctrlWsiedCount.SetWindowText(_T("00"));
|
|
m_ctrlWsiCount.SetFontStatic(_T("Arial"), 20, RGB(0,255,0), FS_BOLD | FS_ANTIALIAS | FS_CENTER);
|
m_ctrlWsiCount.SetBackground(RGB(0,0,0));
|
m_ctrlWsiCount.SetWindowText(_T("00"));
|
|
m_ctrlTotalCount.SetFontStatic(_T("Arial"), 20, RGB(255,0,0), FS_BOLD | FS_ANTIALIAS | FS_CENTER);
|
m_ctrlTotalCount.SetBackground(RGB(0,0,0));
|
m_ctrlTotalCount.SetWindowText(_T("00"));
|
|
ShowDefectFilter(m_nMachineType);
|
|
InitGridDefectFilter();
|
|
FillGridDefectFilter();
|
|
|
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
// 예외: OCX 속성 페이지는 FALSE를 반환해야 합니다.
|
}
|
|
BOOL CDlgDefectFilter::PreTranslateMessage(MSG* pMsg)
|
{
|
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
|
if( pMsg->message == WM_KEYDOWN )
|
{
|
if(pMsg->wParam == VK_RETURN || pMsg->wParam == VK_ESCAPE )
|
{
|
::TranslateMessage(pMsg);
|
::DispatchMessage(pMsg);
|
return TRUE;
|
}
|
}
|
|
return CDialog::PreTranslateMessage(pMsg);
|
}
|
|
void CDlgDefectFilter::UpdateDefectFilter(const SDefectFilter* pDefectFilter)
|
{
|
if (pDefectFilter==NULL) return;
|
|
// save defect filter
|
m_sDefectFilter = *pDefectFilter;
|
|
this->PostMessage(UM_DEFECT_FILTER_UPDATE);
|
}
|
|
LRESULT CDlgDefectFilter::OnReviewResultUpdate(WPARAM wParam, LPARAM lParam)
|
{
|
if (m_pGlassResult==NULL) return 0;
|
|
const VectorReviewResult *pVecReviewResult = m_pGlassResult->GetVectorReviewResult();
|
if (pVecReviewResult==NULL) return 0;
|
|
int nReviewedDefectCount = 0;
|
int nReviewDefectCount = 0;
|
int nTotalDefectCount = m_pGlassResult->GetDefectResultCount();
|
|
for(constVectorReviewResultIt it=pVecReviewResult->begin();it!=pVecReviewResult->end();it++)
|
{
|
const CReviewResult *pReviewResult = static_cast<const CReviewResult*>(&(*it));
|
|
nReviewDefectCount += (int)pReviewResult->m_vecSReviewResult.size();
|
|
for(constVectorSReviewResultIt its=pReviewResult->m_vecSReviewResult.begin(); its!=pReviewResult->m_vecSReviewResult.end();its++)
|
{
|
if (its->nResultCode>ReviewResult_None)
|
{
|
nReviewedDefectCount++;
|
}
|
}
|
}
|
|
const VectorReviewResult *pVecWsiResult = m_pGlassResult->GetVectorWsiResult();
|
if (pVecWsiResult==NULL) return 0;
|
|
int nWsiedDefectCount = 0;
|
int nWsiDefectCount = 0;
|
|
for(constVectorReviewResultIt it=pVecWsiResult->begin();it!=pVecWsiResult->end();it++)
|
{
|
const CReviewResult *pWsiResult = static_cast<const CReviewResult*>(&(*it));
|
|
nWsiDefectCount += (int)pWsiResult->m_vecSReviewResult.size();
|
|
for(constVectorSReviewResultIt its=pWsiResult->m_vecSReviewResult.begin(); its!=pWsiResult->m_vecSReviewResult.end();its++)
|
{
|
if (its->nResultCode>WsiResult_None)
|
{
|
nWsiedDefectCount++;
|
}
|
}
|
}
|
|
CString strValue = _T("");
|
strValue.Format(_T("%03d"), nReviewedDefectCount);
|
m_ctrlReviewedCount.SetWindowText(strValue);
|
|
strValue.Format(_T("%03d"), nReviewDefectCount);
|
m_ctrlReviewCount.SetWindowText(strValue);
|
|
strValue.Format(_T("%03d"), nWsiedDefectCount);
|
m_ctrlWsiedCount.SetWindowText(strValue);
|
|
strValue.Format(_T("%03d"), nWsiDefectCount);
|
m_ctrlWsiCount.SetWindowText(strValue);
|
|
strValue.Format(_T("%03d"), nTotalDefectCount);
|
m_ctrlTotalCount.SetWindowText(strValue);
|
|
|
return 1;
|
}
|
|
void CDlgDefectFilter::UpdateReviewResult(int nModuleIndex, const CGlassResult* pGlassResult, int nPlanIndex)
|
{
|
if (pGlassResult==NULL) return;
|
|
m_pGlassResult = pGlassResult;
|
|
this->PostMessage(UM_REVIEW_RESULT_UPDATE);
|
}
|
|
void CDlgDefectFilter::InitGridDefectFilter()
|
{
|
int nRowIdx, nColIdx, nRows, nCols, nFixRows, nFixCols;
|
CString strTemp;
|
CRect rt;
|
|
nRows = 4;
|
nCols = 3;
|
nFixRows = 0;
|
nFixCols = 0;
|
nRowIdx = 0;
|
nColIdx = 0;
|
|
m_ctrlGridDefectFilter.GetClientRect(&rt);
|
m_ctrlGridDefectFilter.GetDefaultCell(TRUE, FALSE)->SetBackClr(RGB(255, 255, 255));
|
m_ctrlGridDefectFilter.GetDefaultCell(FALSE, TRUE)->SetBackClr(RGB(255, 255, 255));
|
m_ctrlGridDefectFilter.GetDefaultCell(FALSE, FALSE)->SetBackClr(RGB(255, 255, 255));
|
m_ctrlGridDefectFilter.SetFixedRowCount(nFixRows);
|
m_ctrlGridDefectFilter.SetFixedColumnCount(nFixCols);
|
m_ctrlGridDefectFilter.SetRowCount(nRows);
|
m_ctrlGridDefectFilter.SetColumnCount(nCols);
|
m_ctrlGridDefectFilter.SetEditable(TRUE);
|
m_ctrlGridDefectFilter.SetSelectedRange(0, 0, 0, 0, FALSE, FALSE);
|
|
nColIdx = 0;
|
m_ctrlGridDefectFilter.SetColumnWidth(nColIdx++, 20);
|
m_ctrlGridDefectFilter.SetColumnWidth(nColIdx++, 30);
|
m_ctrlGridDefectFilter.SetColumnWidth(nColIdx++, 95);
|
|
nRowIdx = 0;
|
m_ctrlGridDefectFilter.SetRowHeight(nRowIdx++, 20);
|
m_ctrlGridDefectFilter.SetRowHeight(nRowIdx++, 20);
|
m_ctrlGridDefectFilter.SetRowHeight(nRowIdx++, 20);
|
m_ctrlGridDefectFilter.SetRowHeight(nRowIdx++, 20);
|
|
//col 0
|
nRowIdx = 0;
|
nColIdx = 0;
|
m_ctrlGridDefectFilter.SetCellType(nRowIdx++, nColIdx, RUNTIME_CLASS(CGridCellCheck));
|
m_ctrlGridDefectFilter.SetCellType(nRowIdx++, nColIdx, RUNTIME_CLASS(CGridCellCheck));
|
m_ctrlGridDefectFilter.SetCellType(nRowIdx++, nColIdx, RUNTIME_CLASS(CGridCellCheck));
|
m_ctrlGridDefectFilter.SetCellType(nRowIdx++, nColIdx, RUNTIME_CLASS(CGridCellCheck));
|
}
|
|
LRESULT CDlgDefectFilter::OnDefectFilterUpdate(WPARAM wParam, LPARAM lParam)
|
{
|
m_nDefectFilter = m_sDefectFilter.nOptionType;
|
|
switch(m_nDefectFilter)
|
{
|
case DefectType_Optic:
|
m_CheckValue[0] = m_sDefectFilter.bOpticDark;
|
m_CheckValue[1] = m_sDefectFilter.bOpticBright;
|
m_CheckValue[2] = m_sDefectFilter.bOpticDkBr;
|
m_CheckValue[3] = 0;
|
break;
|
|
case DefectType_Gray:
|
m_CheckValue[0] = m_sDefectFilter.bGrayBlack;
|
m_CheckValue[1] = m_sDefectFilter.bGrayWhite;
|
m_CheckValue[2] = 0;
|
m_CheckValue[3] = 0;
|
break;
|
|
case DefectType_Stack:
|
m_CheckValue[0] = m_sDefectFilter.bStackTD;
|
m_CheckValue[1] = m_sDefectFilter.bStackSD;
|
m_CheckValue[2] = m_sDefectFilter.bStackPD;
|
m_CheckValue[3] = m_sDefectFilter.bStackSP; //taek
|
break;
|
|
case DefectType_Size:
|
m_CheckValue[0] = m_sDefectFilter.bSizeSmall;
|
m_CheckValue[1] = m_sDefectFilter.bSizeMedium;
|
m_CheckValue[2] = m_sDefectFilter.bSizeLarge;
|
m_CheckValue[3] = m_sDefectFilter.bSizeHuge;
|
break;
|
|
case DefectType_Judge:
|
m_CheckValue[0] = m_sDefectFilter.bJudgeOK;
|
m_CheckValue[1] = m_sDefectFilter.bJudgeTR;
|
m_CheckValue[2] = m_sDefectFilter.bJudgePR;
|
m_CheckValue[3] = 0;
|
break;
|
|
case DefectType_Process:
|
m_CheckValue[0] = m_sDefectFilter.bProcessNormal;
|
m_CheckValue[1] = m_sDefectFilter.bProcessMask;
|
m_CheckValue[2] = m_sDefectFilter.bProcessCommon;
|
m_CheckValue[3] = m_sDefectFilter.bProcessCrack;
|
break;
|
|
case DefectType_Position:
|
m_CheckValue[0] = m_sDefectFilter.bPositionFront;
|
m_CheckValue[1] = m_sDefectFilter.bPositionBack;
|
m_CheckValue[2] = 0;
|
m_CheckValue[3] = 0;
|
break;
|
}
|
|
FillGridDefectFilter();
|
|
return 0;
|
}
|
|
void CDlgDefectFilter::FillGridDefectFilter()
|
{
|
switch(m_nDefectFilter)
|
{
|
case DefectType_Optic:
|
FillGridDefectFilterOptic();
|
break;
|
|
case DefectType_Gray:
|
FillGridDefectFilterGray();
|
break;
|
|
case DefectType_Stack:
|
FillGridDefectFilterStack();
|
break;
|
|
case DefectType_Size:
|
FillGridDefectFilterSize();
|
break;
|
|
case DefectType_Judge:
|
FillGridDefectFilterJudge();
|
break;
|
|
case DefectType_Process:
|
FillGridDefectFilterProcess();
|
break;
|
|
case DefectType_Position:
|
FillGridDefectFilterPosition();
|
break;
|
}
|
|
m_ctrlGridDefectFilter.Refresh();
|
}
|
|
void CDlgDefectFilter::FillGridDefectFilterProcess()
|
{
|
for (int i=0; i<4; i++)
|
{
|
CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridDefectFilter.GetCell(i, 0);
|
if(pCellCheck) pCellCheck->SetCheck(m_CheckValue[i]);
|
|
m_ctrlGridDefectFilter.GetCell(i, 0)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 1)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 2)->SetBackClr(m_RowColor[i]);
|
}
|
|
// col 1
|
int nRowIdx = 0;
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("NR"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Normal Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("MD"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Mask Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("CD"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Common Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("CR"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Crack Defect"));
|
}
|
|
|
void CDlgDefectFilter::FillGridDefectFilterJudge()
|
{
|
for (int i=0; i<4; i++)
|
{
|
CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridDefectFilter.GetCell(i, 0);
|
if(pCellCheck) pCellCheck->SetCheck(m_CheckValue[i]);
|
|
m_ctrlGridDefectFilter.GetCell(i, 0)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 1)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 2)->SetBackClr(m_RowColor[i]);
|
}
|
|
// col 1
|
int nRowIdx = 0;
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("O"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("OK Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("R"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("TR Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("X"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("PR Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T(""));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T(""));
|
}
|
|
void CDlgDefectFilter::FillGridDefectFilterStack()
|
{
|
for (int i=0; i<4; i++)
|
{
|
CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridDefectFilter.GetCell(i, 0);
|
if(pCellCheck) pCellCheck->SetCheck(m_CheckValue[i]);
|
|
m_ctrlGridDefectFilter.GetCell(i, 0)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 1)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 2)->SetBackClr(m_RowColor[i]);
|
}
|
|
// col 1
|
int nRowIdx = 0;
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("TD"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Total Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("SD"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Stack Defect"));
|
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("PD"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Partial Defect"));
|
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("SP"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Stack Partial"));
|
}
|
|
void CDlgDefectFilter::FillGridDefectFilterSize()
|
{
|
for (int i=0; i<4; i++)
|
{
|
CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridDefectFilter.GetCell(i, 0);
|
if(pCellCheck) pCellCheck->SetCheck(m_CheckValue[i]);
|
|
m_ctrlGridDefectFilter.GetCell(i, 0)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 1)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 2)->SetBackClr(m_RowColor[i]);
|
}
|
|
// col 1
|
int nRowIdx = 0;
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("S"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Small Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("M"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Medium Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("L"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Large Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("H"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Huge Defect"));
|
}
|
|
void CDlgDefectFilter::FillGridDefectFilterOptic()
|
{
|
for (int i=0; i<4; i++)
|
{
|
CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridDefectFilter.GetCell(i, 0);
|
if(pCellCheck) pCellCheck->SetCheck(m_CheckValue[i]);
|
|
m_ctrlGridDefectFilter.GetCell(i, 0)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 1)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 2)->SetBackClr(m_RowColor[i]);
|
}
|
|
// col 1
|
int nRowIdx = 0;
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("DK"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Dark Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("BR"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Bright Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("BD"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Bright Dark"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T(""));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T(""));
|
}
|
|
void CDlgDefectFilter::FillGridDefectFilterGray()
|
{
|
for (int i=0; i<4; i++)
|
{
|
CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridDefectFilter.GetCell(i, 0);
|
if(pCellCheck) pCellCheck->SetCheck(m_CheckValue[i]);
|
|
m_ctrlGridDefectFilter.GetCell(i, 0)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 1)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 2)->SetBackClr(m_RowColor[i]);
|
}
|
|
// col 1
|
int nRowIdx = 0;
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("BL"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Black Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("WH"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("White Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T(""));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T(""));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T(""));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T(""));
|
}
|
|
void CDlgDefectFilter::FillGridDefectFilterPosition()
|
{
|
for (int i=0; i<4; i++)
|
{
|
CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridDefectFilter.GetCell(i, 0);
|
if(pCellCheck) pCellCheck->SetCheck(m_CheckValue[i]);
|
|
m_ctrlGridDefectFilter.GetCell(i, 0)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 1)->SetBackClr(m_RowColor[i]);
|
m_ctrlGridDefectFilter.GetCell(i, 2)->SetBackClr(m_RowColor[i]);
|
}
|
|
// col 1
|
int nRowIdx = 0;
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("FD"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Front Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T("BD"));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T("Back Defect"));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T(""));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T(""));
|
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx, 1, _T(""));
|
m_ctrlGridDefectFilter.SetItemText(nRowIdx++, 2, _T(""));
|
}
|
|
void CDlgDefectFilter::OnBnClickedRadioDefectFilter()
|
{
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
UpdateData(TRUE);
|
|
m_sDefectFilter.nOptionType = m_nDefectFilter;
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
BOOL CDlgDefectFilter::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
|
{
|
// TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
|
|
if (wParam==m_ctrlGridDefectFilter.GetDlgCtrlID())
|
{
|
GetGridDefectFilter();
|
}
|
return __super::OnNotify(wParam, lParam, pResult);
|
}
|
|
void CDlgDefectFilter::GetGridDefectFilter()
|
{
|
UpdateData(TRUE);
|
|
for (int i=0; i<4; i++)
|
{
|
CGridCellCheck* pCellCheck = (CGridCellCheck*)m_ctrlGridDefectFilter.GetCell(i, 0);
|
|
if(pCellCheck)
|
{
|
m_CheckValue[i] = pCellCheck->GetCheck();
|
}
|
}
|
|
switch(m_sDefectFilter.nOptionType)
|
{
|
case DefectType_Optic:
|
m_sDefectFilter.bOpticDark = m_CheckValue[0];
|
m_sDefectFilter.bOpticBright = m_CheckValue[1];
|
m_sDefectFilter.bOpticDkBr = m_CheckValue[2];
|
break;
|
|
case DefectType_Gray:
|
m_sDefectFilter.bGrayBlack = m_CheckValue[0];
|
m_sDefectFilter.bGrayWhite = m_CheckValue[1];
|
break;
|
|
case DefectType_Stack:
|
m_sDefectFilter.bStackTD = m_CheckValue[0];
|
m_sDefectFilter.bStackSD = m_CheckValue[1];
|
m_sDefectFilter.bStackPD = m_CheckValue[2];
|
m_sDefectFilter.bStackSP = m_CheckValue[3]; //taek
|
break;
|
|
case DefectType_Size:
|
m_sDefectFilter.bSizeSmall = m_CheckValue[0];
|
m_sDefectFilter.bSizeMedium = m_CheckValue[1];
|
m_sDefectFilter.bSizeLarge = m_CheckValue[2];
|
m_sDefectFilter.bSizeHuge = m_CheckValue[3];
|
break;
|
|
case DefectType_Judge:
|
m_sDefectFilter.bJudgeOK = m_CheckValue[0];
|
m_sDefectFilter.bJudgeTR = m_CheckValue[1];
|
m_sDefectFilter.bJudgePR = m_CheckValue[2];
|
break;
|
|
case DefectType_Process:
|
m_sDefectFilter.bProcessNormal = m_CheckValue[0];
|
m_sDefectFilter.bProcessMask = m_CheckValue[1];
|
m_sDefectFilter.bProcessCommon = m_CheckValue[2];
|
m_sDefectFilter.bProcessCrack = m_CheckValue[3];
|
break;
|
|
case DefectType_Position:
|
m_sDefectFilter.bPositionFront = m_CheckValue[0];
|
m_sDefectFilter.bPositionBack = m_CheckValue[1];
|
break;
|
}
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckUseWSI()
|
{
|
m_sDefectFilter.bUseWSI = m_ctrlUseWSI->GetCheck();
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckUseWSIMeasurement()
|
{
|
m_sDefectFilter.bUseWSIMeasurement = m_ctrlUseWSIMeasurement->GetCheck();
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawCell()
|
{
|
m_sDefectFilter.pDraw[MapDrawCell] = m_ctrlDraw[MapDrawCell]->GetCheck();
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawDefect()
|
{
|
m_sDefectFilter.pDraw[MapDrawDefect] = m_ctrlDraw[MapDrawDefect]->GetCheck();
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawReviewDefect()
|
{
|
m_sDefectFilter.pDraw[MapDrawReviewDefect] = m_ctrlDraw[MapDrawReviewDefect]->GetCheck();
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawSelectedDefect()
|
{
|
m_sDefectFilter.pDraw[MapDrawSelectedDefect] = m_ctrlDraw[MapDrawSelectedDefect]->GetCheck();
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawCameraPosition()
|
{
|
m_sDefectFilter.pDraw[MapDrawCameraPosition] = m_ctrlDraw[MapDrawCameraPosition]->GetCheck();
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawWsiDefect()
|
{
|
m_sDefectFilter.pDraw[MapDrawWsiDefect] = m_ctrlDraw[MapDrawWsiDefect]->GetCheck();
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawReviewPath()
|
{
|
m_sDefectFilter.pDraw[MapDrawReviewPath] = m_ctrlDraw[MapDrawReviewPath]->GetCheck();
|
m_sDefectFilter.pDraw[MapDrawReviewDefect] = m_sDefectFilter.pDraw[MapDrawReviewPath];
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawWsiPath()
|
{
|
m_sDefectFilter.pDraw[MapDrawWsiPath] = m_ctrlDraw[MapDrawWsiPath]->GetCheck();
|
m_sDefectFilter.pDraw[MapDrawWsiDefect] = m_sDefectFilter.pDraw[MapDrawWsiPath];
|
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawUserPath()
|
{
|
m_sDefectFilter.pDraw[MapDrawUserPath] = m_ctrlDraw[MapDrawUserPath]->GetCheck();
|
m_sDefectFilter.pDraw[MapDrawUserPoint] = m_sDefectFilter.pDraw[MapDrawUserPath];
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
void CDlgDefectFilter::OnBnClickedCheckDrawMeasurePath()
|
{
|
m_sDefectFilter.pDraw[MapDrawMeasurePath] = m_ctrlDraw[MapDrawMeasurePath]->GetCheck();
|
m_sDefectFilter.pDraw[MapDrawMeasurePoint] = m_sDefectFilter.pDraw[MapDrawMeasurePath];
|
if (m_pDDF2P)
|
{
|
m_pDDF2P->DDF2P_SetDefectFilter(&m_sDefectFilter);
|
}
|
}
|
|
BOOL CDlgDefectFilter::ShowDefectFilter(int nType)
|
{
|
m_staticMachineType.SetWindowText(m_strMachineType);
|
return TRUE;
|
}
|
|
BOOL CDlgDefectFilter::SetMachineType(int nType)
|
{
|
m_nMachineType = nType;
|
switch(m_nMachineType)
|
{
|
case 0:
|
m_strMachineType.Format(_T("MachineType : QD"));
|
break;
|
case 1:
|
m_strMachineType.Format(_T("MachineType : RGB"));
|
break;
|
case 2:
|
m_strMachineType.Format(_T("MachineType : BANK"));
|
break;
|
case 3:
|
m_strMachineType.Format(_T("MachineType : OC"));
|
break;
|
case 4:
|
m_strMachineType.Format(_T("MachineType : BDI"));
|
break;
|
case 5:
|
m_strMachineType.Format(_T("MachineType : CS"));
|
break;
|
default:
|
m_strMachineType.Format(_T("MachineType : CPJT"));
|
break;
|
}
|
return TRUE;
|
}
|
|
void CDlgDefectFilter::OnBnClickedButtonVersion()
|
{
|
// TODO: 여기에 컨트롤 알림 처리기 코드를 추가합니다.
|
CDlgUpdateNote *dlgUpdateNote;
|
dlgUpdateNote = new CDlgUpdateNote;
|
dlgUpdateNote->Create(CDlgUpdateNote::IDD, this);
|
dlgUpdateNote->ShowWindow(SW_SHOW);
|
|
}
|
CDlgDefectFilter* CDlgDefectFilter::pDlgDefectFilter;
|
|
CDlgDefectFilter* CDlgDefectFilter::GetInstance(CWnd* it){
|
if(pDlgDefectFilter ==NULL){
|
pDlgDefectFilter = new CDlgDefectFilter(it);
|
}
|
return pDlgDefectFilter;
|
}
|
|
CDlgDefectFilter* CDlgDefectFilter::GetInstance(){
|
if(pDlgDefectFilter ==NULL){
|
pDlgDefectFilter = new CDlgDefectFilter();
|
}
|
return pDlgDefectFilter;
|
}
|
|
|
|
// HBRUSH CDlgDefectFilter::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
// {
|
// HBRUSH hbr = __super::OnCtlColor(pDC, pWnd, nCtlColor);
|
//
|
// //CRect rect;
|
// //CString strClass = _T("");
|
// //UINT nID = pWnd->GetDlgCtrlID();
|
//
|
// //if(nCtlColor == CTLCOLOR_STATIC)
|
// //{
|
// // pDC->SetTextColor(RGB(255,255,255));
|
// // pDC->SetBkColor(RGB(38,38,38));
|
// // hbr = (HBRUSH)GetStockObject(NULL_BRUSH);
|
// //}
|
//
|
//
|
// // TODO: 기본값이 적당하지 않으면 다른 브러시를 반환합니다.
|
// return hbr;
|
//
|
// }
|
|
|
|
|
// BOOL CDlgDefectFilter::OnEraseBkgnd(CDC* pDC)
|
// {
|
// // TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
|
// /* CRect rect;
|
// GetClientRect(&rect);
|
// __super::OnEraseBkgnd(pDC);
|
// pDC->FillSolidRect(rect, RGB(38,38,38) );*/
|
//
|
// return TRUE;
|
// }
|
|
|
BOOL CDlgDefectFilter::OnEraseBkgnd(CDC* pDC)
|
{
|
// TODO: 여기에 메시지 처리기 코드를 추가 및/또는 기본값을 호출합니다.
|
CRect rect;
|
GetClientRect(&rect);
|
__super::OnEraseBkgnd(pDC);
|
pDC->FillSolidRect(rect, RGB(38,38,38) );
|
|
return TRUE;
|
}
|
|
HBRUSH CDlgDefectFilter::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
|
{
|
HBRUSH hbr = __super::OnCtlColor(pDC, pWnd, nCtlColor);
|
|
// TODO: 여기서 DC의 특성을 변경합니다.
|
CRect rect;
|
CString strClass = _T("");
|
UINT nID = pWnd->GetDlgCtrlID();
|
|
if(nCtlColor == CTLCOLOR_STATIC)
|
{
|
pDC->SetTextColor(RGB(255,255,255));
|
pDC->SetBkColor(RGB(38,38,38));
|
m_brushBk.DeleteObject();
|
m_brushBk.CreateSolidBrush(RGB(38,38,38));
|
hbr = m_brushBk;
|
}
|
|
|
|
// TODO: 기본값이 적당하지 않으면 다른 브러시를 반환합니다.
|
return hbr;
|
}
|