Files
FutureChecker/FutureCheckerDlg.h
2013-07-21 00:33:25 +00:00

129 lines
4.2 KiB
C++

// FutureCheckerDlg.h : header file
//
#if !defined(AFX_FUTURECHECKERDLG_H__976B64CB_BA9F_494B_A134_679B993EA694__INCLUDED_)
#define AFX_FUTURECHECKERDLG_H__976B64CB_BA9F_494B_A134_679B993EA694__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
// CFutureCheckerDlg dialog
class CFutureCheckerDlg : public CDialog, public CThinThread
{
public:
void StartWork(); // override to do startup
void DoWork(); // override to do work
void EndWork(); // override to do shutdown
BOOL _MessageParse( CString & strMessage, int &nCount );
void _WorkThreadProc(); // 매수판단 Processing 함수.
void CheckAmount( DWORD dwCurTime, int nCount );
public:
CFutureCheckerDlg(CWnd* pParent = NULL);// standard constructor
virtual ~CFutureCheckerDlg();
BOOL m_bMonitorStatus;
IDibPtr m_pObjFutureCurOnly;
CCpDibEvent * m_pEventFutureCurOnly;
typedef struct _tag_FCURR
{
DWORD dwStartTime; // 검사 기준시각.
float fPrevCheckMoney; // 마지막 검사 호가.(매도1레벨).
int nDiffLevel; // 레벨 변화값.
} FCURR, *LPFCURR;
FCURR m_FCURR;
typedef struct _tag__FAMOUNT__
{
DWORD dwTime; // 시각.
int nCount; // 거래량.
} __FAMOUNT__, *LP__FAMOUNT__;
typedef struct _tag_FAMOUNT
{
int nIndexFAMOUNT; // 기록순서.(라인갯수기준 Circular 큐운영)
__FAMOUNT__ FAMOUNT[100]; // 과거 기록검토 최대치.
} FAMOUNT, *LPFAMOUNT;
FAMOUNT m_FAMOUNT;
typedef struct _tag_APPLYRULEJOIN
{
DWORD dwTimeFAMOUNT; // 검사 기준시각.
int nStateFAMOUNT; // Normal(0), 상승(1), 하락(2)
DWORD dwTimeFCURR; // 검사 기준시각.
int nStateFCURR; // Normal(0), 상승(1), 하락(2)
} APPLYRULEJOIN, *LPAPPLYRULEJOIN;
APPLYRULEJOIN m_APPLYRULEJOIN; // 합집합 조건처리를 위해.
typedef struct _tag_CHECKAMOUNT
{
float fPrevCMoney; // 1-(float) 현재가
float fPrevMedo; // 16-(float) 매도 1 우선호가
float fPrevMesu; // 33-(float) 매수 1 우선호가
long lTotalAmount; // 13-(long) 누적거래량
} CHECKAMOUNT, *LPCHECKAMOUNT;
CHECKAMOUNT m_CHECKAMOUNT;
enum EMULATEHOTKEY_SRC { SRC_FAMOUNT=0, SRC_FCURR=1 };
private:
void InstallHotKey( BOOL bInstall = TRUE );
void TraceMsg( CString strMsg, CXListBox::Color tc=CXListBox::Black, CXListBox::Color bc=CXListBox::White );
BOOL EmulateHotKey( EMULATEHOTKEY_SRC srcType, int nIndex , BOOL bSound=FALSE );
void ClearCheckValue();
// Dialog Data
//{{AFX_DATA(CFutureCheckerDlg)
enum { IDD = IDD_FUTURECHECKER_DIALOG };
CXListBox m_hTraceListBox;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CFutureCheckerDlg)
public:
virtual BOOL DestroyWindow();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
CFont m_LockUnlockBtnFont;
HICON m_hIcon;
// Generated message map functions
//{{AFX_MSG(CFutureCheckerDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnConfigBtn();
afx_msg void OnClose();
afx_msg void OnRunCheck();
afx_msg void OnMonitorStart();
afx_msg void OnUpdateMonitorStart(CCmdUI* pCmdUI);
afx_msg void OnMonitorPause();
afx_msg void OnUpdateMonitorPause(CCmdUI* pCmdUI);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
afx_msg BOOL OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct);
//}}AFX_MSG
afx_msg LONG OnReceived(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnHotKey(WPARAM wParam, LPARAM lParam);
// afx_msg LRESULT OnTargetAppDestoryed( WPARAM wParam, LPARAM lParam ); // 후킹 라이브러리용.
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_FUTURECHECKERDLG_H__976B64CB_BA9F_494B_A134_679B993EA694__INCLUDED_)