447 lines
17 KiB
C++
447 lines
17 KiB
C++
// ConfigEnvDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "hookmsg.h"
|
|
#include "ConfigEnvDlg.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CConfigEnvDlg dialog
|
|
|
|
|
|
CConfigEnvDlg::CConfigEnvDlg(CWnd* pParent /*=NULL*/)
|
|
: CDialog(CConfigEnvDlg::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(CConfigEnvDlg)
|
|
m_strScreenNum = _T("");
|
|
m_nMoney1 = 0;
|
|
m_nMoney2 = 0;
|
|
m_nStockChkInterval = 0;
|
|
m_nMoney3 = 0;
|
|
m_nMoney4 = 0;
|
|
m_n7121ClickDelay = 0;
|
|
m_nLimitCall = 0;
|
|
m_n7121DbClickContinuePauseTime = 0;
|
|
m_lTradeCount = 0;
|
|
m_lTradeMoney = 0;
|
|
//}}AFX_DATA_INIT
|
|
}
|
|
|
|
|
|
void CConfigEnvDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CConfigEnvDlg)
|
|
DDX_Control(pDX, IDC_CONFIGENV_MESU_HOTKEY4, m_hMesuHotKey4);
|
|
DDX_Control(pDX, IDC_CONFIGENV_MESU_HOTKEY3, m_hMesuHotKey3);
|
|
DDX_Control(pDX, IDC_CONFIGENV_MESU_HOTKEY2, m_hMesuHotKey2);
|
|
DDX_Control(pDX, IDC_CONFIGENV_MESU_HOTKEY1, m_hMesuHotKey1);
|
|
DDX_Control(pDX, IDC_CONFIGENV_ETC_NP_CODEINPUT_HOTKEY, m_hNPInputCode_HotKey);
|
|
DDX_Control(pDX, IDC_CONFIGENV_MESU_LEVEL_COMBO4, m_cbMesuLevel4);
|
|
DDX_Control(pDX, IDC_CONFIGENV_MESU_LEVEL_COMBO3, m_cbMesuLevel3);
|
|
DDX_Control(pDX, IDC_CONFIGENV_MESU_LEVEL_COMBO2, m_cbMesuLevel2);
|
|
DDX_Control(pDX, IDC_CONFIGENV_MESU_LEVEL_COMBO1, m_cbMesuLevel1);
|
|
DDX_Control(pDX, IDC_CONFIGENV_ETC_HOOKLOCKUNLOCK_HOTKEY, m_hHookLockUnlock_HotKey);
|
|
DDX_Text(pDX, IDC_CONFIGENV_FINALJOB_SCREENNUM_EDIT, m_strScreenNum);
|
|
DDV_MaxChars(pDX, m_strScreenNum, 4);
|
|
DDX_Text(pDX, IDC_CONFIGENV_MESU_TOTALMONEY_EDIT1, m_nMoney1);
|
|
DDV_MinMaxLong(pDX, m_nMoney1, 0, 100000000);
|
|
DDX_Text(pDX, IDC_CONFIGENV_MESU_TOTALMONEY_EDIT2, m_nMoney2);
|
|
DDV_MinMaxLong(pDX, m_nMoney2, 0, 100000000);
|
|
DDX_Text(pDX, IDC_CONFIGENV_ETC_STOCKCHECKINTERVAL_EDIT, m_nStockChkInterval);
|
|
DDV_MinMaxLong(pDX, m_nStockChkInterval, 0, 36000);
|
|
DDX_Text(pDX, IDC_CONFIGENV_MESU_TOTALMONEY_EDIT3, m_nMoney3);
|
|
DDV_MinMaxLong(pDX, m_nMoney3, 0, 100000000);
|
|
DDX_Text(pDX, IDC_CONFIGENV_MESU_TOTALMONEY_EDIT4, m_nMoney4);
|
|
DDV_MinMaxLong(pDX, m_nMoney4, 0, 100000000);
|
|
DDX_Text(pDX, IDC_CONFIGENV_FINALJOB_7121DELAY_EDIT, m_n7121ClickDelay);
|
|
DDV_MinMaxLong(pDX, m_n7121ClickDelay, 0, 3000);
|
|
DDX_Text(pDX, IDC_CONFIGENV_LIMITCALL_EDIT, m_nLimitCall);
|
|
DDX_Text(pDX, IDC_CONFIGENV_7121DbClickContinuePauseTime_EDIT, m_n7121DbClickContinuePauseTime);
|
|
DDV_MinMaxLong(pDX, m_n7121DbClickContinuePauseTime, 0, 60000);
|
|
DDX_Text(pDX, IDC_CONFIGENV_TRADECOUNT_EDIT, m_lTradeCount);
|
|
DDX_Text(pDX, IDC_CONFIGENV_TRADEMONEY_EDIT, m_lTradeMoney);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
|
|
BEGIN_MESSAGE_MAP(CConfigEnvDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CConfigEnvDlg)
|
|
ON_BN_CLICKED(IDC_CONFIGENV_RELOADALLCONDITIONFILE_BTN, OnConfigenvReloadAllConditionFileBtn)
|
|
ON_BN_CLICKED(IDC_CONFIGENV_TRADECOUNT_CHECK, OnConfigenvTradecountCheck)
|
|
ON_BN_CLICKED(IDC_CONFIGENV_TRADEMONEY_CHECK, OnConfigenvTrademoneyCheck)
|
|
ON_BN_CLICKED(IDC_CONFIGENV_LOWMONEYINFODLG_CHECK, OnConfigenvLowmoneyinfodlgCheck)
|
|
ON_BN_CLICKED(IDC_CONFIGENV_MESU_CHECK1, OnConfigenvMesuCheck1)
|
|
ON_BN_CLICKED(IDC_CONFIGENV_MESU_CHECK2, OnConfigenvMesuCheck2)
|
|
ON_BN_CLICKED(IDC_CONFIGENV_MESU_CHECK3, OnConfigenvMesuCheck3)
|
|
ON_BN_CLICKED(IDC_CONFIGENV_MESU_CHECK4, OnConfigenvMesuCheck4)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CConfigEnvDlg message handlers
|
|
|
|
BOOL CConfigEnvDlg::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
Load();
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CConfigEnvDlg::OnOK()
|
|
{
|
|
Save();
|
|
|
|
CDialog::OnOK();
|
|
}
|
|
|
|
void CConfigEnvDlg::Load()
|
|
{
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_HOGARULE1_CHECK ))->SetCheck(g_theApp.m_bHogaLevelCalc);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_HOTKEYCODEINPUTRULE1_CHECK ))->SetCheck(g_theApp.m_bHotkeyCodeInputRule1);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_TOPMOSTWINDOW_CHECK ))->SetCheck(g_theApp.m_bTopmostWnd);
|
|
|
|
m_hHookLockUnlock_HotKey.SetHotKey( g_AppEnv.LockUnlockHotKey.wVk, g_AppEnv.LockUnlockHotKey.wModifier );
|
|
m_hNPInputCode_HotKey.SetHotKey( g_AppEnv.NP_InputCodeHotKey.wVk, g_AppEnv.NP_InputCodeHotKey.wModifier );
|
|
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_7121DBCLICK_STOP_CHECK ))->SetCheck(g_AppEnv.b7121DbClickStop);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_7121DBCLICK_CHECK ))->SetCheck(g_AppEnv.b7121DbClick);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_ETC_USESOUNDEFFECT_CHECK ))->SetCheck(g_AppEnv.bUseSoundEffect);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_ETC_TIMESYNC_CHECK ))->SetCheck(g_AppEnv.bTimeSync);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_CANCEL_NOTCONTRACTEDCANCEL_CHECK ))->SetCheck(g_AppEnv.bNotContractedCancel);
|
|
//~!
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_SUCCESSIVE_BUY_CHECK ))->SetCheck(g_AppEnv.bSuccessiveBuy);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_JINPUTANDSTOP1_CHECK ))->SetCheck(g_AppEnv.bJInputAndStop1);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_JINPUTANDSTOP2_CHECK ))->SetCheck(g_AppEnv.bJInputAndStop2);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_LOWMONEYINFODLG_CHECK ))->SetCheck(g_AppEnv.bLowmoneyInfoDlg);
|
|
|
|
m_cbMesuLevel1.SetCurSel(g_AppEnv.Level1-1);
|
|
m_cbMesuLevel2.SetCurSel(g_AppEnv.Level2-1);
|
|
m_cbMesuLevel3.SetCurSel(g_AppEnv.Level3-1);
|
|
m_cbMesuLevel4.SetCurSel(g_AppEnv.Level4-1);
|
|
|
|
m_nMoney1 = g_AppEnv.Money1;
|
|
m_nMoney2 = g_AppEnv.Money2;
|
|
m_nMoney3 = g_AppEnv.Money3;
|
|
m_nMoney4 = g_AppEnv.Money4;
|
|
|
|
m_strScreenNum = g_AppEnv.strScreenNumber;
|
|
|
|
m_n7121DbClickContinuePauseTime = g_AppEnv.n7121DbClickContinuePauseTime;
|
|
m_nStockChkInterval = g_AppEnv.StockCheckInterval;
|
|
m_n7121ClickDelay = g_AppEnv.n7121Delay;
|
|
m_nLimitCall = g_AppEnv.LimitCall;
|
|
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_TRADECOUNT_CHECK ))->SetCheck(g_AppEnv.bTradeCountCheck);
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_TRADEMONEY_CHECK ))->SetCheck(g_AppEnv.bTradeMoneyCheck);
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_TRADECOUNT_EDIT ))->EnableWindow( g_AppEnv.bTradeCountCheck );
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_TRADEMONEY_EDIT ))->EnableWindow( g_AppEnv.bTradeMoneyCheck );
|
|
m_lTradeCount = g_AppEnv.lTradeCount;
|
|
m_lTradeMoney = g_AppEnv.lTradeMoney;
|
|
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK1 ))->SetCheck(g_AppEnv.bMesuUsingMacro1);
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_MESU_HOTKEY1 ))->EnableWindow( g_AppEnv.bMesuUsingMacro1 );
|
|
m_hMesuHotKey1.SetHotKey( g_AppEnv.MesuHotKey1.wVk, g_AppEnv.MesuHotKey1.wModifier );
|
|
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK2 ))->SetCheck(g_AppEnv.bMesuUsingMacro2);
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_MESU_HOTKEY2 ))->EnableWindow( g_AppEnv.bMesuUsingMacro2 );
|
|
m_hMesuHotKey2.SetHotKey( g_AppEnv.MesuHotKey2.wVk, g_AppEnv.MesuHotKey2.wModifier );
|
|
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK3 ))->SetCheck(g_AppEnv.bMesuUsingMacro3);
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_MESU_HOTKEY3 ))->EnableWindow( g_AppEnv.bMesuUsingMacro3 );
|
|
m_hMesuHotKey3.SetHotKey( g_AppEnv.MesuHotKey3.wVk, g_AppEnv.MesuHotKey3.wModifier );
|
|
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK4 ))->SetCheck(g_AppEnv.bMesuUsingMacro4);
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_MESU_HOTKEY4 ))->EnableWindow( g_AppEnv.bMesuUsingMacro4 );
|
|
m_hMesuHotKey4.SetHotKey( g_AppEnv.MesuHotKey4.wVk, g_AppEnv.MesuHotKey4.wModifier );
|
|
|
|
UpdateData(FALSE);
|
|
}
|
|
|
|
void CConfigEnvDlg::Save()
|
|
{
|
|
UpdateData();
|
|
|
|
g_theApp.m_bHogaLevelCalc = ((CButton*)GetDlgItem( IDC_CONFIGENV_HOGARULE1_CHECK ))->GetCheck();
|
|
g_theApp.m_bHotkeyCodeInputRule1 = ((CButton*)GetDlgItem( IDC_CONFIGENV_HOTKEYCODEINPUTRULE1_CHECK ))->GetCheck();
|
|
g_theApp.m_bTopmostWnd = ((CButton*)GetDlgItem( IDC_CONFIGENV_TOPMOSTWINDOW_CHECK ))->GetCheck();
|
|
|
|
m_hHookLockUnlock_HotKey.GetHotKey( g_AppEnv.LockUnlockHotKey.wVk, g_AppEnv.LockUnlockHotKey.wModifier );
|
|
m_hNPInputCode_HotKey.GetHotKey( g_AppEnv.NP_InputCodeHotKey.wVk, g_AppEnv.NP_InputCodeHotKey.wModifier );
|
|
|
|
g_AppEnv.b7121DbClickStop = ((CButton*)GetDlgItem( IDC_CONFIGENV_7121DBCLICK_STOP_CHECK ))->GetCheck();
|
|
g_AppEnv.b7121DbClick = ((CButton*)GetDlgItem( IDC_CONFIGENV_7121DBCLICK_CHECK ))->GetCheck();
|
|
g_AppEnv.bUseSoundEffect = ((CButton*)GetDlgItem( IDC_CONFIGENV_ETC_USESOUNDEFFECT_CHECK ))->GetCheck();
|
|
g_AppEnv.bTimeSync = ((CButton*)GetDlgItem( IDC_CONFIGENV_ETC_TIMESYNC_CHECK ))->GetCheck();
|
|
g_AppEnv.bNotContractedCancel = ((CButton*)GetDlgItem( IDC_CONFIGENV_CANCEL_NOTCONTRACTEDCANCEL_CHECK ))->GetCheck();
|
|
//~!
|
|
g_AppEnv.bSuccessiveBuy = ((CButton*)GetDlgItem( IDC_CONFIGENV_SUCCESSIVE_BUY_CHECK ))->GetCheck();
|
|
g_AppEnv.bJInputAndStop1 = ((CButton*)GetDlgItem( IDC_CONFIGENV_JINPUTANDSTOP1_CHECK ))->GetCheck();
|
|
g_AppEnv.bJInputAndStop2 = ((CButton*)GetDlgItem( IDC_CONFIGENV_JINPUTANDSTOP2_CHECK ))->GetCheck();
|
|
g_AppEnv.bLowmoneyInfoDlg = ((CButton*)GetDlgItem( IDC_CONFIGENV_LOWMONEYINFODLG_CHECK ))->GetCheck();
|
|
|
|
int nIndex;
|
|
nIndex = m_cbMesuLevel1.GetCurSel();
|
|
if(nIndex != LB_ERR)
|
|
g_AppEnv.Level1 = nIndex+1;
|
|
nIndex = m_cbMesuLevel2.GetCurSel();
|
|
if(nIndex != LB_ERR)
|
|
g_AppEnv.Level2 = nIndex+1;
|
|
nIndex = m_cbMesuLevel3.GetCurSel();
|
|
if(nIndex != LB_ERR)
|
|
g_AppEnv.Level3 = nIndex+1;
|
|
nIndex = m_cbMesuLevel4.GetCurSel();
|
|
if(nIndex != LB_ERR)
|
|
g_AppEnv.Level4 = nIndex+1;
|
|
|
|
g_AppEnv.Money1 = m_nMoney1;
|
|
g_AppEnv.Money2 = m_nMoney2;
|
|
g_AppEnv.Money3 = m_nMoney3;
|
|
g_AppEnv.Money4 = m_nMoney4;
|
|
|
|
strncpy( g_AppEnv.strScreenNumber, (LPSTR)(LPCTSTR)m_strScreenNum, 4 );
|
|
|
|
g_AppEnv.n7121DbClickContinuePauseTime = m_n7121DbClickContinuePauseTime;
|
|
g_AppEnv.StockCheckInterval = m_nStockChkInterval;
|
|
g_AppEnv.n7121Delay = m_n7121ClickDelay;
|
|
g_AppEnv.LimitCall = m_nLimitCall;
|
|
|
|
g_AppEnv.bTradeCountCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_TRADECOUNT_CHECK ))->GetCheck();
|
|
g_AppEnv.bTradeMoneyCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_TRADEMONEY_CHECK ))->GetCheck();
|
|
g_AppEnv.lTradeCount = m_lTradeCount;
|
|
g_AppEnv.lTradeMoney = m_lTradeMoney;
|
|
|
|
g_AppEnv.bMesuUsingMacro1 = ((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK1 ))->GetCheck();
|
|
m_hMesuHotKey1.GetHotKey( g_AppEnv.MesuHotKey1.wVk, g_AppEnv.MesuHotKey1.wModifier );
|
|
|
|
g_AppEnv.bMesuUsingMacro2 = ((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK2 ))->GetCheck();
|
|
m_hMesuHotKey2.GetHotKey( g_AppEnv.MesuHotKey2.wVk, g_AppEnv.MesuHotKey2.wModifier );
|
|
|
|
g_AppEnv.bMesuUsingMacro3 = ((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK3 ))->GetCheck();
|
|
m_hMesuHotKey3.GetHotKey( g_AppEnv.MesuHotKey3.wVk, g_AppEnv.MesuHotKey3.wModifier );
|
|
|
|
g_AppEnv.bMesuUsingMacro4 = ((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK4 ))->GetCheck();
|
|
m_hMesuHotKey4.GetHotKey( g_AppEnv.MesuHotKey4.wVk, g_AppEnv.MesuHotKey4.wModifier );
|
|
}
|
|
|
|
void CConfigEnvDlg::OnConfigenvReloadAllConditionFileBtn()
|
|
{
|
|
// Config.ini DEBUG_SECTION 다시 읽기.
|
|
g_ConfigINI.ReadConfigEnvFromINI_DEBUG_SECTION();
|
|
|
|
// 공시_특별종목코드.txt
|
|
g_pStockData->ReadFileSpecialCodeByPublish();
|
|
|
|
// 거부_전장거래부진종목코드.txt
|
|
g_pStockData->ReadFileExclusionCodeFromFile();
|
|
|
|
// 수동_종목코드.txt
|
|
g_pStockData->ReadFileManualInputCodeFromFile();
|
|
|
|
// 조건식 파일 재적용.
|
|
g_Condition.Refresh();
|
|
|
|
::MessageBox(NULL, "모든 조건식 및 종목코드 환경설정파일을 재적용하였습니다.",
|
|
"조건식 및 종목코드 재적용", MB_OK|MB_ICONINFORMATION|MB_TOPMOST );
|
|
}
|
|
|
|
/*
|
|
void CConfigEnvDlg::OnTestJumoonButton()
|
|
{
|
|
UpdateData();
|
|
|
|
CEdit *pEdit = (CEdit*)GetDlgItem( IDC_TEST_JCODE_EDIT );
|
|
CString strCCode;
|
|
pEdit->GetWindowText( strCCode );
|
|
strCCode.MakeUpper();
|
|
if( strCCode.GetLength() != 6 )
|
|
{
|
|
AfxMessageBox( "종목코드를 정확하게 입력하세요. 예) A00660" );
|
|
return;
|
|
}
|
|
|
|
int nRet = MessageBox( "실제 매매주문을 실행합니다.\n"
|
|
"매도레벨과 금액설정을 확인해 주십시오.\n"
|
|
"계속하시겠습니까?", "주문확인", MB_YESNO );
|
|
if( nRet == IDNO ) return;
|
|
|
|
int nIndex = m_cbMesuLevel1.GetCurSel();
|
|
if(nIndex != LB_ERR)
|
|
g_AppEnv.Level = nIndex+1;
|
|
|
|
g_AppEnv.Money = m_nMoney;
|
|
|
|
try
|
|
{
|
|
HRESULT hr;
|
|
CString strErrorMsg;
|
|
|
|
IDibPtr sjbobj;
|
|
hr = sjbobj.CreateInstance(CLSID_StockJpbid2);
|
|
if (FAILED(hr))
|
|
_com_raise_error(hr);
|
|
|
|
sjbobj->SetInputValue( 0, (LPCSTR)strCCode );
|
|
short nBR = sjbobj->BlockRequest();
|
|
|
|
long nOrder = 10;
|
|
long lLevelMoney = sjbobj->GetDataValue(0, (long)(g_AppEnv.Level-1)); // n차 매도호가.
|
|
long lLowCheck = sjbobj->GetDataValue(1, (long)1); // 2차 매수호가.(하한가 체크).
|
|
sjbobj.Release();
|
|
|
|
if( lLowCheck == 0 || lLevelMoney == 0 )
|
|
{
|
|
if( lLevelMoney == 0 )
|
|
strErrorMsg += "[상한가]";
|
|
if( lLowCheck == 0 )
|
|
strErrorMsg += "[하한가]";
|
|
|
|
strErrorMsg += " 종목입니다.";
|
|
MessageBox( strErrorMsg, "매매정보", MB_OK|MB_ICONINFORMATION );
|
|
}
|
|
else
|
|
{
|
|
nOrder = g_AppEnv.Money/lLevelMoney;
|
|
nOrder = nOrder - (nOrder%10);
|
|
|
|
CString strAccount;
|
|
|
|
ICpTdUtilPtr objTdUtil;
|
|
hr = objTdUtil.CreateInstance(CLSID_CpTdUtil);
|
|
if (FAILED(hr))
|
|
_com_raise_error(hr);
|
|
|
|
_variant_t vtStrAccount = objTdUtil->GetAccountNumber();
|
|
if( vtStrAccount.vt == (VT_BSTR | VT_ARRAY) )
|
|
{
|
|
SAFEARRAY *psa = vtStrAccount.parray;
|
|
BSTR* bstrArray;
|
|
SafeArrayAccessData( psa, (void**)&bstrArray );
|
|
strAccount = *bstrArray;
|
|
SafeArrayUnaccessData( psa );
|
|
}
|
|
objTdUtil.Release();
|
|
|
|
ICpTdDibPtr obj;
|
|
hr = obj.CreateInstance(CLSID_CpTd0311);
|
|
if (FAILED(hr))
|
|
_com_raise_error(hr);
|
|
|
|
obj->SetInputValue( 0, (long)2 ); // 주문구분.
|
|
obj->SetInputValue( 1, (LPCSTR)strAccount ); // 계좌번호.
|
|
obj->SetInputValue( 2, (long)10 ); // 계좌구분.
|
|
obj->SetInputValue( 3, (LPCSTR)strCCode ); // 종목코드.
|
|
|
|
obj->SetInputValue( 4, (long)nOrder ); // 주문수량.
|
|
obj->SetInputValue( 5, (long)lLevelMoney ); // 주문단가.
|
|
|
|
obj->SetInputValue( 6, (LPCSTR)"00" ); // 매매구분.
|
|
|
|
short nRet = obj->BlockRequest();
|
|
if( nRet != 0 )
|
|
{
|
|
strErrorMsg = "통신에러 :";
|
|
if (0 != obj->GetDibStatus()) {
|
|
strErrorMsg += obj->GetDibMsg1();
|
|
strErrorMsg += obj->GetDibMsg2();
|
|
strErrorMsg.TrimRight();
|
|
AfxMessageBox(strErrorMsg);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
CString str=""; str += obj->GetDibMsg1();
|
|
MessageBox( str, "매매정보", MB_OK|MB_ICONINFORMATION );
|
|
}
|
|
|
|
obj.Release();
|
|
}
|
|
}
|
|
catch( _com_error e )
|
|
{
|
|
AfxMessageBox("매매테스트 실행중 문제가 발생하였습니다.");
|
|
}
|
|
}
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void CConfigEnvDlg::OnConfigenvTradecountCheck()
|
|
{
|
|
BOOL bCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_TRADECOUNT_CHECK ))->GetCheck();
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_TRADECOUNT_EDIT ))->EnableWindow( bCheck );
|
|
}
|
|
void CConfigEnvDlg::OnConfigenvTrademoneyCheck()
|
|
{
|
|
BOOL bCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_TRADEMONEY_CHECK ))->GetCheck();
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_TRADEMONEY_EDIT ))->EnableWindow( bCheck );
|
|
}
|
|
|
|
void CConfigEnvDlg::OnConfigenvLowmoneyinfodlgCheck()
|
|
{
|
|
BOOL bCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_LOWMONEYINFODLG_CHECK ))->GetCheck();
|
|
if( bCheck )
|
|
{
|
|
TCHAR szFilePath[_MAX_PATH]={0,};
|
|
::GetModuleFileName(NULL, szFilePath, _MAX_PATH);
|
|
*(strrchr( szFilePath, '\\' ) + 1) = 0;
|
|
strcat( szFilePath, "\\HLStockWindow.exe" );
|
|
SHELLEXECUTEINFO ShExecInfo;
|
|
ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO);
|
|
ShExecInfo.fMask = NULL;
|
|
ShExecInfo.hwnd = NULL;
|
|
ShExecInfo.lpVerb = NULL;
|
|
ShExecInfo.lpFile = szFilePath;
|
|
ShExecInfo.lpParameters = NULL;
|
|
ShExecInfo.lpDirectory = NULL;
|
|
ShExecInfo.nShow = SW_SHOW;
|
|
ShExecInfo.hInstApp = NULL;
|
|
BOOL bSuccess = ShellExecuteEx(&ShExecInfo);
|
|
if( bSuccess == FALSE )
|
|
((CButton*)GetDlgItem( IDC_CONFIGENV_LOWMONEYINFODLG_CHECK ))->SetCheck( FALSE );
|
|
}
|
|
else
|
|
{
|
|
HWND hTagretWnd = ::FindWindow( "HLStockWindow_Dialog", NULL );
|
|
if( ::IsWindow( hTagretWnd ) )
|
|
::SendMessage(hTagretWnd, WM_CLOSE, 0, 0);
|
|
}
|
|
}
|
|
|
|
|
|
void CConfigEnvDlg::OnConfigenvMesuCheck1()
|
|
{
|
|
BOOL bCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK1 ))->GetCheck();
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_MESU_HOTKEY1 ))->EnableWindow( bCheck );
|
|
}
|
|
|
|
void CConfigEnvDlg::OnConfigenvMesuCheck2()
|
|
{
|
|
BOOL bCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK2 ))->GetCheck();
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_MESU_HOTKEY2 ))->EnableWindow( bCheck );
|
|
}
|
|
|
|
void CConfigEnvDlg::OnConfigenvMesuCheck3()
|
|
{
|
|
BOOL bCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK3 ))->GetCheck();
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_MESU_HOTKEY3 ))->EnableWindow( bCheck );
|
|
}
|
|
|
|
void CConfigEnvDlg::OnConfigenvMesuCheck4()
|
|
{
|
|
BOOL bCheck = ((CButton*)GetDlgItem( IDC_CONFIGENV_MESU_CHECK4 ))->GetCheck();
|
|
((CWnd*)GetDlgItem( IDC_CONFIGENV_MESU_HOTKEY4 ))->EnableWindow( bCheck );
|
|
}
|