From 1fd49a571338b6c946bb05dcdf59ec1468df5c50 Mon Sep 17 00:00:00 2001
From: SWK <sungwk82@diteam.co.kr>
Date: 목, 22 12월 2022 12:31:43 +0900
Subject: [PATCH] ongoing50 #4403 CF AOI Reveiw TACT 지연 개선 1. 일정 시간 유지 신호 처리 시 동기화로 인한 불합리 개선 - 일정 시간 유지 필요 시 스래드풀 작업큐를 이용하여 루프처리 방식으로 변경 - 유지 신호 처리 중 출력 신호 발생 시 작업큐에 등록하여 유지 신호와 결합하여 출력 처리 2. FDC 보고 항목 중 SW 버전 체크 루프 불합리 개선 - 프로그램 시작 시 연동 프로그램 버전 체크 간 실행되지 않는 프로그램이 있는 경우 무한 루프 발생 - 무한 루프로 인한 CPU 점유 상승->루프 중간 Sleep추가 및 코드 간소화 3. 로그 메시지에 시간 ms단위 추가(황만수SM 작업 내역 병합)

---
 ReviewHistory/include/akGridCtrl/GridCell.h |  143 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 143 insertions(+), 0 deletions(-)

diff --git a/ReviewHistory/include/akGridCtrl/GridCell.h b/ReviewHistory/include/akGridCtrl/GridCell.h
new file mode 100644
index 0000000..335e6a6
--- /dev/null
+++ b/ReviewHistory/include/akGridCtrl/GridCell.h
@@ -0,0 +1,143 @@
+/////////////////////////////////////////////////////////////////////////////
+// GridCell.h : header file
+//
+// MFC Grid Control - Grid cell class header file
+//
+// Written by Chris Maunder <chris@codeproject.com>
+// Copyright (c) 1998-2005. All Rights Reserved.
+//
+// This code may be used in compiled form in any way you desire. This
+// file may be redistributed unmodified by any means PROVIDING it is 
+// not sold for profit without the authors written consent, and 
+// providing that this notice and the authors name and all copyright 
+// notices remains intact. 
+//
+// An email letting me know how you are using it would be nice as well. 
+//
+// This file is provided "as is" with no expressed or implied warranty.
+// The author accepts no liability for any damage/loss of business that
+// this product may cause.
+//
+// For use with CGridCtrl v2.20+
+//
+//////////////////////////////////////////////////////////////////////
+
+#if !defined(AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_)
+#define AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_
+
+#if _MSC_VER >= 1000
+#pragma once
+#endif // _MSC_VER >= 1000
+
+class CakGridCtrl;
+#include "GridCellBase.h"
+
+// Each cell contains one of these. Fields "row" and "column" are not stored since we
+// will usually have acces to them in other ways, and they are an extra 8 bytes per
+// cell that is probably unnecessary.
+
+class CGridCell : public CGridCellBase
+{
+    friend class CakGridCtrl;
+    DECLARE_DYNCREATE(CGridCell)
+
+// Construction/Destruction
+public:
+    CGridCell();
+    virtual ~CGridCell();
+
+// Attributes
+public:
+    void operator=(const CGridCell& cell);
+
+    virtual void  SetText(LPCTSTR szText)        { m_strText = szText;  }                       
+    virtual void  SetImage(int nImage)           { m_nImage = nImage;   }                        
+    virtual void  SetData(LPARAM lParam)         { m_lParam = lParam;   }      
+    virtual void  SetGrid(CakGridCtrl* pGrid)      { m_pGrid = pGrid;     }                          
+    // virtual void SetState(const DWORD nState);  -  use base class version   
+    virtual void  SetFormat(DWORD nFormat)       { m_nFormat = nFormat; }                      
+    virtual void  SetTextClr(COLORREF clr)       { m_crFgClr = clr;     }                          
+    virtual void  SetBackClr(COLORREF clr)       { m_crBkClr = clr;     }                          
+    virtual void  SetFont(const LOGFONT* plf);
+    virtual void  SetMargin(UINT nMargin)        { m_nMargin = nMargin; }
+    virtual CWnd* GetEditWnd() const             { return m_pEditWnd;   }
+    virtual void  SetCoords(int /*nRow*/, int /*nCol*/) {}  // don't need to know the row and
+                                                            // column for base implementation
+
+    virtual LPCTSTR     GetText() const             { return (m_strText.IsEmpty())? _T("") : LPCTSTR(m_strText); }
+    virtual int         GetImage() const            { return m_nImage;  }
+    virtual LPARAM      GetData() const             { return m_lParam;  }
+    virtual CakGridCtrl*  GetGrid() const             { return m_pGrid;   }
+    // virtual DWORD    GetState() const - use base class
+    virtual DWORD       GetFormat() const;
+    virtual COLORREF    GetTextClr() const          { return m_crFgClr; } // TODO: change to use default cell
+    virtual COLORREF    GetBackClr() const          { return m_crBkClr; }
+    virtual LOGFONT*    GetFont() const;
+    virtual CFont*      GetFontObject() const;
+    virtual UINT        GetMargin() const;
+
+    virtual BOOL        IsEditing() const           { return m_bEditing; }
+    virtual BOOL        IsDefaultFont() const       { return (m_plfFont == NULL); }
+    virtual void        Reset();
+
+// editing cells
+public:
+    virtual BOOL Edit(int nRow, int nCol, CRect rect, CPoint point, UINT nID, UINT nChar);
+    virtual void EndEdit();
+protected:
+    virtual void OnEndEdit();
+
+protected:
+    CString    m_strText;      // Cell text (or binary data if you wish...)
+    LPARAM     m_lParam;       // 32-bit value to associate with item
+    int        m_nImage;       // Index of the list view item뭩 icon
+    DWORD      m_nFormat;
+    COLORREF   m_crFgClr;
+    COLORREF   m_crBkClr;
+    LOGFONT*   m_plfFont;
+    UINT       m_nMargin;
+
+    BOOL       m_bEditing;     // Cell being edited?
+
+    CakGridCtrl* m_pGrid;        // Parent grid control
+    CWnd*      m_pEditWnd;
+};
+
+// This class is for storing grid default values. It's a little heavy weight, so
+// don't use it in bulk 
+class CGridDefaultCell : public CGridCell
+{
+    DECLARE_DYNCREATE(CGridDefaultCell)
+
+// Construction/Destruction
+public:
+    CGridDefaultCell();
+    virtual ~CGridDefaultCell();
+
+public:
+    virtual DWORD GetStyle() const                      { return m_dwStyle;      }
+    virtual void  SetStyle(DWORD dwStyle)               { m_dwStyle = dwStyle;   }
+    virtual int   GetWidth() const                      { return m_Size.cx;      }
+    virtual int   GetHeight() const                     { return m_Size.cy;      }
+    virtual void  SetWidth(int nWidth)                  { m_Size.cx = nWidth;    }
+    virtual void  SetHeight(int nHeight)                { m_Size.cy = nHeight;   }
+
+    // Disable these properties
+    virtual void     SetData(LPARAM /*lParam*/)             { ASSERT(FALSE);         }      
+    virtual void     SetState(DWORD /*nState*/)             { ASSERT(FALSE);         }
+    virtual DWORD    GetState() const                       { return CGridCell::GetState()|GVIS_READONLY; }
+    virtual void     SetCoords( int /*row*/, int /*col*/)   { ASSERT(FALSE);         }
+    virtual void     SetFont(const LOGFONT* /*plf*/);
+    virtual LOGFONT* GetFont() const;   
+    virtual CFont*   GetFontObject() const;
+
+protected:
+    CSize m_Size;       // Default Size
+    CFont m_Font;       // Cached font
+    DWORD m_dwStyle;    // Cell Style - unused
+};
+
+//{{AFX_INSERT_LOCATION}}
+// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
+
+#endif // !defined(AFX_GRIDCELL_H__519FA702_722C_11D1_ABBA_00A0243D1382__INCLUDED_)

--
Gitblit v1.9.3