// CCodeNameDlg.cpp: 实现文件
|
//
|
#include "common/pch.h"
|
#include "FloatTrade.h"
|
#include "CCodeNameDlg.h"
|
#include "afxdialogex.h"
|
#include "../common/NetworkApi.h"
|
#include "../common/JsonUtil.h"
|
#include "Constant.h"
|
#include "ConfigUtil.h"
|
|
#define CODE_NUM 10
|
|
|
// CCodeNameDlg 对话框
|
|
IMPLEMENT_DYNAMIC(CCodeNameDlg, CDialogEx)
|
|
CCodeNameDlg::CCodeNameDlg(CWnd* pParent /*=nullptr*/)
|
: CDialogEx(IDD_DIALOG_CODE_NAME, pParent)
|
{
|
|
}
|
|
CCodeNameDlg::~CCodeNameDlg()
|
{
|
}
|
|
void CCodeNameDlg::DoDataExchange(CDataExchange* pDX)
|
{
|
CDialogEx::DoDataExchange(pDX);
|
}
|
|
|
BEGIN_MESSAGE_MAP(CCodeNameDlg, CDialogEx)
|
ON_BN_CLICKED(IDOK, &CCodeNameDlg::OnBnClickedOk)
|
END_MESSAGE_MAP()
|
|
|
// CCodeNameDlg 消息处理程序
|
|
|
void CCodeNameDlg::OnBnClickedOk()
|
{
|
// 保存代码名称
|
int codeCtrls[CODE_NUM] = { IDC_STATIC_CODE_1, IDC_STATIC_CODE_2, IDC_STATIC_CODE_3 , IDC_STATIC_CODE_4 , IDC_STATIC_CODE_5 , IDC_STATIC_CODE_6 , IDC_STATIC_CODE_7 , IDC_STATIC_CODE_8 , IDC_STATIC_CODE_9 , IDC_STATIC_CODE_10 };
|
int nameCtrls[CODE_NUM] = { IDC_EDIT_NAME_1, IDC_EDIT_NAME_2, IDC_EDIT_NAME_3 , IDC_EDIT_NAME_4 , IDC_EDIT_NAME_5 , IDC_EDIT_NAME_6 , IDC_EDIT_NAME_7 , IDC_EDIT_NAME_8 , IDC_EDIT_NAME_9 , IDC_EDIT_NAME_10 };
|
for (int i = 0; i < CODE_NUM; i++) {
|
CString code;
|
((CStatic*)GetDlgItem(codeCtrls[i]))->GetWindowTextW(code);
|
CString name;
|
((CEdit*)GetDlgItem(nameCtrls[i]))->GetWindowTextW(name);
|
if (code.GetLength() != 6) {
|
continue;
|
}
|
Constant::codeNameMap[StringUtil::cstring2String(code)] = name;
|
}
|
ConfigUtil::setCodeNames(Constant::codeNameMap);
|
CDialogEx::OnOK();
|
}
|
|
|
BOOL CCodeNameDlg::OnInitDialog()
|
{
|
CDialogEx::OnInitDialog();
|
if (Constant::codeNameMap.empty()) {
|
requestPositions();
|
}
|
int codeCtrls[CODE_NUM] ={IDC_STATIC_CODE_1, IDC_STATIC_CODE_2, IDC_STATIC_CODE_3 , IDC_STATIC_CODE_4 , IDC_STATIC_CODE_5 , IDC_STATIC_CODE_6 , IDC_STATIC_CODE_7 , IDC_STATIC_CODE_8 , IDC_STATIC_CODE_9 , IDC_STATIC_CODE_10};
|
int nameCtrls[CODE_NUM] = { IDC_EDIT_NAME_1, IDC_EDIT_NAME_2, IDC_EDIT_NAME_3 , IDC_EDIT_NAME_4 , IDC_EDIT_NAME_5 , IDC_EDIT_NAME_6 , IDC_EDIT_NAME_7 , IDC_EDIT_NAME_8 , IDC_EDIT_NAME_9 , IDC_EDIT_NAME_10 };
|
|
|
int index = 0;
|
for (std::map<std::string, CString>::iterator e = Constant::codeNameMap.begin(); e != Constant::codeNameMap.end(); e++) {
|
string code = (*e).first;
|
CString name = (*e).second;
|
((CStatic*)GetDlgItem(codeCtrls[index]))->SetWindowTextW(CString(code.c_str()));
|
((CEdit*)GetDlgItem(nameCtrls[index]))->SetWindowTextW(name);
|
index++;
|
}
|
|
|
|
|
|
|
|
|
|
return TRUE;
|
}
|
|
void CCodeNameDlg::requestPositions()
|
{
|
string result = NetworkApi::get_all_positions();
|
auto doc = JsonUtil::parseUTF16(result);
|
if (doc.IsObject() && doc[L"code"] == 0) {
|
auto array = doc[L"data"].GetArray();
|
for (int i = 0; i < array.Size(); i++) {
|
auto data = array[i].GetObjectW();
|
CString codew = data[L"code"].GetString();
|
string code = StringUtil::cstring2String(codew);
|
CString codeName = data[L"code_name"].GetString();
|
Constant::codeNameMap[code] = codeName;
|
}
|
}
|
cout << result << endl;
|
}
|