protected void RegisterOcxMsgChannel(FormMsgChannelDesc oMsgInfo) { string sModuleId = oMsgInfo.TradeFormInt.GetModuleId(); m_hsMsgDispatch[sModuleId] = oMsgInfo; }
private void axHSQuanTrade1_TradeNotify(object sender, AxHSQuanTradeLib._DHSQuanTradeEvents_TradeNotifyEvent e) { if (0 == e.pamam1) { showlog(e.param3); } else if (2 == e.pamam1) { string sFileName = e.param3; FormBackTestResult frmBackResult = new FormBackTestResult(); frmBackResult.MdiParent = this; frmBackResult.ResultFile = sFileName; frmBackResult.ResultType = e.param2; if (0 == e.param2) { frmBackResult.Text = "回测记录表"; } else if (1 == e.param2) { frmBackResult.Text = "回测权益表"; } frmBackResult.Show(); } else if (8 == e.pamam1) { this.timer1.Enabled = true; } else { if (4 == e.pamam1) { showlog(e.param3); DM.setOptlist(e.param3); } System.Collections.IDictionaryEnumerator itDispath = m_hsMsgDispatch.GetEnumerator(); while (itDispath.MoveNext()) { FormMsgChannelDesc oDesc = (FormMsgChannelDesc)itDispath.Value; ITradeDispatch oForm = oDesc.TradeFormInt; if (null != oForm) { if (e.pamam1 < (int)TradeOcxMsgType.E_OCX_UNKNOWN_MSG && e.pamam1 >= (int)TradeOcxMsgType.E_OCX_LOG_MSG) { if (TradeOcxMsgAuthType.E_OCX_PUBLIC_MSG == oDesc.MsgAuth[e.pamam1]) { oForm.DispatchMessage(e.pamam1, e.param2, e.param3, e.param4); } else if (e.param4 != null && oForm.GetModuleId().Equals(e.param4)) { oForm.DispatchMessage(e.pamam1, e.param2, e.param3, e.param4); } } else //unkown message type dispath directly { oForm.DispatchMessage(e.pamam1, e.param2, e.param3, e.param4); } } } } /* * switch (e.pamam1) * { * case 0: * { * showlog(e.param3); * } * * break; * case 1: * { * formmodelrun.addstrlog(e.param3); * } * * break; * case 2://策略统计结果 * { * string sFileName = e.param3; * FormBackTestResult frmBackResult = new FormBackTestResult(); * frmBackResult.MdiParent = this; * frmBackResult.ResultFile = sFileName; * frmBackResult.ResultType = e.param2; * if (0 == e.param2) * { * frmBackResult.Text = "回测记录表"; * } * else if (1 == e.param2) * { * frmBackResult.Text = "回测权益表"; * } * * frmBackResult.Show(); * } * break; * case 3://行情 * { * * for (int i = 0; i < listOptForm.Count; i++) * { * listOptForm[i].Update(e.param3); * * } * //showlog(e.param3); * * } * break; * case 4://功能请求返回 * { * showlog(e.param3); * DM.setOptlist(e.param3); * } * break; * * } * */ }