调整json内容显示不全,增加json描述字段内容

This commit is contained in:
yangjiaxuan 2022-12-29 15:47:57 +08:00
parent 2ed003307b
commit d326b6a3be
6 changed files with 51 additions and 18 deletions

View File

@ -1,4 +1,4 @@
// CDlgInput.cpp: 实现文件
// CDlgInput.cpp: 实现文件
//
#include "pch.h"
@ -29,6 +29,7 @@ void CDlgInput::DoDataExchange(CDataExchange* pDX)
BEGIN_MESSAGE_MAP(CDlgInput, CDialogEx)
ON_BN_CLICKED(IDOK, &CDlgInput::OnBnClickedOk)
ON_EN_CHANGE(IDC_EDIT1, &CDlgInput::OnEnChangeEdit1)
END_MESSAGE_MAP()
@ -38,6 +39,15 @@ BOOL CDlgInput::OnInitDialog()
CDialogEx::OnInitDialog();
::SetWindowTextW(m_hWnd, title_.c_str());
size_t pos = val_.find(L"\\n");
while (pos != std::wstring::npos)
{
val_.replace(pos, 2, L"\r\n");
pos = val_.find(L"\\n");
}
while ((pos = val_.find(L"\\t")) != std::wstring::npos)
val_.replace(pos, 2, L"\t");
::SetDlgItemTextW(m_hWnd, IDC_EDIT1, val_.c_str());
return FALSE;
@ -46,10 +56,29 @@ BOOL CDlgInput::OnInitDialog()
void CDlgInput::OnBnClickedOk()
{
// TODO: 在此添加控件通知处理程序代码
wchar_t val[128] = { 0 };
wchar_t val[1024] = { 0 };
::GetDlgItemTextW(m_hWnd, IDC_EDIT1, val, _countof(val) - 1);
val_ = val;
size_t pos = val_.find(L"\r\n");
while (pos != std::wstring::npos)
{
val_.replace(pos, 2, L"\\n");
pos = val_.find(L"\r\n");
}
while ((pos = val_.find(L"\t")) != std::wstring::npos)
val_.replace(pos, 1, L"\\t");
CDialogEx::OnOK();
}
void CDlgInput::OnEnChangeEdit1()
{
// TODO: 如果该控件是 RICHEDIT 控件,它将不
// 发送此通知,除非重写 CDialogEx::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask()
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
}

View File

@ -1,4 +1,4 @@
#pragma once
#pragma once
// CDlgInput 对话框
@ -31,4 +31,5 @@ public:
{
title_ = title ? title : L"\u4FEE\u6539";
}
afx_msg void OnEnChangeEdit1();
};

View File

@ -1,4 +1,4 @@
// CDlgItemMgr.cpp: 实现文件
// CDlgItemMgr.cpp: 实现文件
//
#include "pch.h"
@ -78,7 +78,7 @@ END_MESSAGE_MAP()
void CDlgItemMgr::OnBnClickedButtonAdd()
{
// TODO: 在此添加控件通知处理程序代码
wchar_t text[128] = { 0 }, name[128] = { 0 }, desc[128] = { 0 };
wchar_t text[1024] = { 0 }, name[1024] = { 0 }, desc[1024] = { 0 };
bool online = is_checked(this, IDC_CHECK_ONLINE), fatal = is_checked(this, IDC_CHECK_FATAL);
int ind = -1;
@ -91,7 +91,7 @@ void CDlgItemMgr::OnBnClickedButtonAdd()
}
for (int i = 0; i < list_.GetItemCount(); ++i)
{
wchar_t val[128] = { 0 };
wchar_t val[1024] = { 0 };
list_.GetItemText(i, 1, val, _countof(val) - 1);
if (wcscmp(name, val) == 0)
{
@ -141,7 +141,7 @@ void CDlgItemMgr::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
{
if (pos.x <= width[i])
{
wchar_t text[128] = { 0 };
wchar_t text[1024] = { 0 };
if (i < 3)
{
std::wstring tips(L"\u5220\u9664\u6D4B\u8BD5\u9879\uFF1A");
@ -170,7 +170,7 @@ void CDlgItemMgr::OnNMDblclkList1(NMHDR* pNMHDR, LRESULT* pResult)
else
{
CDlgInput input;
wchar_t val[128] = { 0 };
wchar_t val[1024] = { 0 };
std::wstring def(L"");
list_.GetItemText(ind, 2, val, _countof(val) - 1);
@ -215,22 +215,24 @@ std::wstring CDlgItemMgr::get_stored_config_file(void)
}
void CDlgItemMgr::get_item(int ind, page_config::ITEM* item)
{
wchar_t text[128] = { 0 };
size_t len = 1024;
wchar_t *text = (wchar_t*)malloc(len + 1);
list_.GetItemText(ind, 1, text, _countof(text) - 1);
list_.GetItemText(ind, 1, text, len);
item->name = text;
list_.GetItemText(ind, 2, text, _countof(text) - 1);
list_.GetItemText(ind, 2, text, len);
item->title = text;
list_.GetItemText(ind, 3, text, _countof(text) - 1);
list_.GetItemText(ind, 3, text, len);
item->man = wcscmp(text, L"false") == 0;
list_.GetItemText(ind, 4, text, _countof(text) - 1);
list_.GetItemText(ind, 4, text, len);
item->fatal = wcscmp(text, L"true") == 0;
list_.GetItemText(ind, 5, text, _countof(text) - 1);
list_.GetItemText(ind, 5, text, len);
item->desc = text;
free(text);
}
void CDlgItemMgr::load_from_file(const wchar_t* file)
{
wchar_t path[MAX_PATH] = { 0 },
wchar_t *path = (wchar_t*)malloc(MAX_PATH * 4),
*sn = path,
*n = sn + 40,
*t = n + 40,
@ -272,6 +274,7 @@ void CDlgItemMgr::load_from_file(const wchar_t* file)
cont.erase(0, pos + 2);
}
::PostMessage(GetParent()->m_hWnd, WM_TEST_ITEM_CHANGED, 0, 0);
free(path);
}
void CDlgItemMgr::load_stored_config(void)
{
@ -299,7 +302,7 @@ void CDlgItemMgr::item_changed(void)
}
bool CDlgItemMgr::get_name(const wchar_t* title, page_config::ITEM* item)
{
wchar_t text[128] = { 0 };
wchar_t text[1024] = { 0 };
for (size_t i = 0; i < list_.GetItemCount(); ++i)
{
@ -316,7 +319,7 @@ bool CDlgItemMgr::get_name(const wchar_t* title, page_config::ITEM* item)
}
bool CDlgItemMgr::get_title(const wchar_t* name, page_config::ITEM* item)
{
wchar_t text[128] = { 0 };
wchar_t text[1024] = { 0 };
for (size_t i = 0; i < list_.GetItemCount(); ++i)
{
@ -333,7 +336,7 @@ bool CDlgItemMgr::get_title(const wchar_t* name, page_config::ITEM* item)
}
void CDlgItemMgr::get_all_items(std::vector<page_config::ITEM>& items)
{
wchar_t text[128] = { 0 };
wchar_t text[1024] = { 0 };
for (size_t i = 0; i < list_.GetItemCount(); ++i)
{