SDC C-Project CF Review 프로그램
LYW
2021-09-27 b9b6752e83c701cc67241923d2b74dc3a963d243
ReviewHistory/ReveiwHistory/ReveiwHistoryDlg.h
»õ ÆÄÀÏ
@@ -0,0 +1,283 @@

// ReveiwHistoryDlg.h: í—¤ë” íŒŒì¼
//
#pragma once
#include "akFormationMap.h"
#include "akGridData.h"
#include "AlignDlg.h"
#include "akWndArrange.h"
#include "DitGlassRawServer.h"
#include "GlassRawBase.h"
#include "akCore/akFileDB.h"
#include "afxcmn.h"
#include "akGridCtrl/akGridCtrl.h"
#include "akImageView.h"
//#include "CameraImageView.h"
//#include "CHImageControls/CHRectTracker.h"
#define MAX_COUNT   100
struct _DefectList
{
   int            m_nFileTime;
   CString         m_strFileName;
   CString         m_strLoading;
   CString         m_strGlassID;
   CString         m_strPPID;
   int            m_nReviewCount;
   int            m_nAllCount;
   CString         m_strJudge;
};
// CReveiwHistoryDlg ëŒ€í™” ìƒìž
class CReveiwHistoryDlg : public CDialogEx
{
// ìƒì„±ìž…니다.
public:
   CReveiwHistoryDlg(CWnd* pParent = nullptr);   // í‘œì¤€ ìƒì„±ìžìž…니다.
// ëŒ€í™” ìƒìž ë°ì´í„°ìž…니다.
#ifdef AFX_DESIGN_TIME
   enum { IDD = IDD_DLG_REVIEWHISTORY };
#endif
   protected:
   virtual void DoDataExchange(CDataExchange* pDX);   // DDX/DDV ì§€ì›ìž…니다.
public:
   CFont m_Filelistfont;
   CFont m_Defectfont;
   _DefectDisplayOption m_DefectDisplayOption;
   CakFormationMap m_FormationMap;
   akDefectFormation m_Formation;
   CString m_strRawFilePath;
   CakWndArrange      m_WndArrange;
   CakImageView m_ImageView;
   CAlignDlg* m_pDlgAlign;
   CakGridCtrl m_gridMultiLIst;
   std::vector<CString> m_vecStrGridMultiHeader;
   CakGridCtrl m_gridReviewList;
   std::vector<CString> m_vecStrGridReviewHeader;
   std::vector<CString> m_vecStrGridReviewList;
   std::vector<CString> m_vecStrGridReviewPath;
   std::vector<CString> m_vecStrGridTimeList;
   std::vector<_DefectList> m_vecStrDefectList;
   CakGridCtrl m_gridDefectInfo;
   std::vector<CString> m_vecStrGridDefectHeader;
   CakGridCtrl m_gridGlassInfo;
   std::vector<CString> m_vecStrGridGlassHeader;
   std::vector<CString> m_vecStrReviewTemp;
   std::vector<_akFormation*>   m_vecSortForm;
   std::vector<_akDefect> m_vectest;
   CImage m_DefectImage;
   //LYW 20210825 #3486 ADD START
   CImage m_DefectRotateImage;
   //LYW 20210825 #3486 ADD END
   CImage m_ReviewImage;
   CRect m_picture_rect;
   CRect m_picture_rect2;
   CImage m_AlignFirst;
   CImage m_AlignSecend;
   CRect m_Align_rect;
   CRect m_Align_rect2;
   CButton m_chkAllDefect;
   CButton m_chkReviewDefect;
   CButton m_chkMuti;
   CButton m_chkSingle;
   CSliderCtrl m_sldImg;
   CEdit m_ctrCount;
   CStatic m_ctrReviewImage;
   CEdit m_ctlFileCount;
   CProgressCtrl m_ctlProgress;
   CakGridCtrl m_ctrlGridGlassList;
   // tracker
   BOOL         m_bDrawTracker;
   CPoint         m_ptTrackerStart;
   //CCHRectTracker   m_rectTracker;
   // Scroll Pos
   int         m_nVScroll;
   int         m_nHScroll;
   // Max Scroll Pos
   int         m_nMaxVScroll;
   int         m_nMaxHScroll;
///////////////////////////////////////////////////////
   CDitGlassRawServer m_Server;
   CGlassRawBase* m_pGlassRawMaker;
   CgrmGlassRawData m_GlassRawDataBuffer;
///////////////////////////////////////////////////////
   int m_nSelectedCol;
   int m_nSelectedRow;
   char m_strConfigFile[MAX_PATH];
   bool m_bDefectAll;
   bool m_bFirst;
   int m_nCount;
   int m_nGlassSelect;
   int m_nFileCount;
   int m_nSelectFile[105];
   int m_nDefectSize[105];
   int m_nCellSize[105];
   int m_nCellSizeTemp[105];
   int m_nImageSize[105];
   int m_nSizeDefect;
   int m_nSizeImage;
   int m_nDefectCount;
   int m_nImageCount;
   int m_nCellCount;
   BOOL m_bAsending;
   struct _InitOption
   {
      int m_nMaxDataNumCell;
      int m_nMaxDataNumDefect;
      int m_nSelectRawType;
      char m_strLogFilePath[256];
      int  m_bUseStack;
      char m_strStackLocalPath[256];
      char m_strStackEquipID[32];
      char m_strStackParam1[32];
      char m_strStackParam2[32];
   }m_ConfigOption;
// êµ¬í˜„입니다.
protected:
   HICON m_hIcon;
   // ìƒì„±ëœ ë©”시지 ë§µ í•¨ìˆ˜
   virtual BOOL OnInitDialog();
   afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
   afx_msg void OnPaint();
   afx_msg HCURSOR OnQueryDragIcon();
   virtual BOOL PreTranslateMessage(MSG* pMsg);
   DECLARE_MESSAGE_MAP()
   void AddVecFileHeader();
   void AddVecGlassHeader();
   void AddVecDefectHeader();
   void SlideInit();
   void InitGridReviewLIst(CakGridCtrl* pGrid, UINT nRectCtrlID);
   void InitGridGlassLIst(CakGridCtrl * pGrid, UINT nRectCtrlID);
   void InitGridDefectLIst(CakGridCtrl* pGrid, UINT nRectCtrlID);
   void CreateUserDirectory();
   void CreateUserClass();
   void DestroyUserClass();
   void getDispInfoGlass(int nCol, int nRow, CString* pStrData);
   void getDispInfoGlassInfo(int nCol, int nRow, CString * pStrData);
   void getDispInfoDefect(int nCol, int nRow, CString* pStrData);
public:
   afx_msg void OnBnClickedButtonMapviewFit();
   afx_msg void OnDestroy();
   afx_msg LRESULT OnMapDefectSelected(WPARAM wParam, LPARAM lParam);
   afx_msg LRESULT OnMapDefectMouseOver(WPARAM wParam, LPARAM lParam);
   afx_msg LRESULT OnListDefectSelected(WPARAM wParam, LPARAM lParam);
   afx_msg void OnSize(UINT nType, int cx, int cy);
   afx_msg void OnOptionPathsetting();
   afx_msg void OnViewAlldefect();
   afx_msg void OnViewReviewdefect();
   afx_msg void OnAlignView();
   afx_msg void OnBnClickedBtnFindBin();
   afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
   afx_msg void OnChangeEditCount();
   afx_msg void OnClickedChkAllDefect();
   afx_msg void OnClickedChkMuti();
   afx_msg void OnClickedChkReviewDefect();
   afx_msg void OnClickedChkSingle();
   afx_msg void OnChangeEditFileCount();
   afx_msg void OnBnClickedButton3();
   virtual BOOL OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult);
   void FileTime(CString strPath);
   void OpenFileHeader(CString strPath, CString strFullPath);
   void BinFileOpen(int nCount);
   void OnCbnSelchangeComboRawtype();
   void ShowProgressBar();
   void setDefectShow(int nDefectID, BOOL bEnsureVisible);
   void ImageShow(int nDefectID);
   void SetScrollSetting();
   void SetScrollRest();
   void Imagenoload();
   //LYW 20210825 #3486 ADD START
   void ImageRotate(CImage& SrcImage, CImage& DstImage, double degree = 180.0);
   //LYW 20210825 #3486 ADD END
   BOOL GetCheckFileLoad(int nCount);
   void GlassInfoRest();
   BOOL MultiSelectCheck(int nSelectCount);
   int MultiInsert(int nSelectCount, int nDataCount);
   void InitSelectGlass(int nSelectCount);
   void AddVecDataImage(int nDataCount);
   void AddVecDataDefct(int nDataCount);
   void AddVecDataDefectAll(int nDataCount);
   void AddVecDataDefct2(int nDataCount/*, int nRawCount*/);
   void AddVecDataDefectAll2(int nDataCount/*, int nRawCount*/);
   void AddVecGlassData(int nCount);
   void AddVecCellData(int nCellCount);
   void AddVecDateSorting(int nDataCount);
   void AddVecImageSorting(int nDataCount);
   void AddVecCellSorting(int nCellCount);
   void SelectCell(int nDataCount);
   void SortFileList(int nCol);
   void SortListDefect(int nCol);
   void SetDefectCount() {   m_nDefectCount = m_nDefectCount + 1; }
   int   GetDefectCount() { return m_nDefectCount; }
   void SetImageCount() { m_nImageCount = m_nImageCount + 1; }
   int   GetImageCount() { return m_nImageCount; }
   void SetCellCount() { m_nCellCount = m_nCellCount + 1; }
   int   GetCellCount() { return m_nCellCount; }
   afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
};