设置区间参数的步长
This commit is contained in:
parent
425730e615
commit
6ffad229e8
Binary file not shown.
|
@ -6301,6 +6301,8 @@ void ChgjsonDlg::set_control_status(const HGITEM& item)
|
||||||
GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_HIDE);
|
||||||
GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_HIDE);
|
||||||
GetDlgItem(IDC_COMBO_DEFAULT)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_COMBO_DEFAULT)->ShowWindow(SW_HIDE);
|
||||||
|
GetDlgItem(IDC_EDIT_STEP)->ShowWindow(SW_HIDE);
|
||||||
|
GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_HIDE);
|
||||||
constraint_.SetCurSel(item.range.type);
|
constraint_.SetCurSel(item.range.type);
|
||||||
if (item.range.type == RANGE_TYPE_NONE)
|
if (item.range.type == RANGE_TYPE_NONE)
|
||||||
{
|
{
|
||||||
|
@ -6326,11 +6328,14 @@ void ChgjsonDlg::set_control_status(const HGITEM& item)
|
||||||
GetDlgItem(IDC_STATIC_TO)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_STATIC_TO)->ShowWindow(SW_SHOW);
|
||||||
GetDlgItem(IDC_EDIT_FROM)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_EDIT_FROM)->ShowWindow(SW_SHOW);
|
||||||
GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_SHOW);
|
||||||
|
GetDlgItem(IDC_EDIT_STEP)->ShowWindow(SW_SHOW);
|
||||||
|
GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_SHOW);
|
||||||
|
|
||||||
if (item.type == L"int")
|
if (item.type == L"int")
|
||||||
{
|
{
|
||||||
SetDlgItemInt(IDC_EDIT_FROM, item.range.lower);
|
SetDlgItemInt(IDC_EDIT_FROM, item.range.lower);
|
||||||
SetDlgItemInt(IDC_EDIT_TO, item.range.upper);
|
SetDlgItemInt(IDC_EDIT_TO, item.range.upper);
|
||||||
|
SetDlgItemInt(IDC_EDIT_STEP, item.range.step);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -6341,6 +6346,9 @@ void ChgjsonDlg::set_control_status(const HGITEM& item)
|
||||||
|
|
||||||
swprintf_s(buf, _countof(buf) - 1, L"%f", item.range.upper);
|
swprintf_s(buf, _countof(buf) - 1, L"%f", item.range.upper);
|
||||||
::SetDlgItemTextW(m_hWnd, IDC_EDIT_TO, buf);
|
::SetDlgItemTextW(m_hWnd, IDC_EDIT_TO, buf);
|
||||||
|
|
||||||
|
swprintf_s(buf, _countof(buf) - 1, L"%f", item.range.step);
|
||||||
|
::SetDlgItemTextW(m_hWnd, IDC_EDIT_STEP, buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // list
|
else // list
|
||||||
|
@ -6449,11 +6457,13 @@ void* ChgjsonDlg::create_json(int item, std::vector<DEFH>* def_h, std::wstring*
|
||||||
{
|
{
|
||||||
r->set_value(L"min", (int)hg_items_[item].range.lower);
|
r->set_value(L"min", (int)hg_items_[item].range.lower);
|
||||||
r->set_value(L"max", (int)hg_items_[item].range.upper);
|
r->set_value(L"max", (int)hg_items_[item].range.upper);
|
||||||
|
r->set_value(L"step", (int)hg_items_[item].range.step);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
r->set_value(L"min", hg_items_[item].range.lower);
|
r->set_value(L"min", hg_items_[item].range.lower);
|
||||||
r->set_value(L"max", hg_items_[item].range.upper);
|
r->set_value(L"max", hg_items_[item].range.upper);
|
||||||
|
r->set_value(L"step", hg_items_[item].range.step);
|
||||||
}
|
}
|
||||||
jsn->set_value(L"range", r);
|
jsn->set_value(L"range", r);
|
||||||
r->release();
|
r->release();
|
||||||
|
@ -6745,12 +6755,16 @@ void ChgjsonDlg::add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent, bool
|
||||||
{
|
{
|
||||||
if (item.type == L"int")
|
if (item.type == L"int")
|
||||||
{
|
{
|
||||||
int l = 0, u = 0;
|
int l = 0, u = 0, s = 0;
|
||||||
if (child->get_value(L"min", l))
|
if (child->get_value(L"min", l))
|
||||||
{
|
{
|
||||||
child->get_value(L"max", u);
|
child->get_value(L"max", u);
|
||||||
item.range.lower = l;
|
item.range.lower = l;
|
||||||
item.range.upper = u;
|
item.range.upper = u;
|
||||||
|
if (child->get_value(L"step", s))
|
||||||
|
item.range.step = s;
|
||||||
|
else
|
||||||
|
item.range.step = 1;
|
||||||
item.range.type = RANGE_TYPE_RANGE;
|
item.range.type = RANGE_TYPE_RANGE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -6775,6 +6789,8 @@ void ChgjsonDlg::add_item(void* jsn_root, void* jsn_obj, HTREEITEM parent, bool
|
||||||
if (child->get_value(L"min", item.range.lower))
|
if (child->get_value(L"min", item.range.lower))
|
||||||
{
|
{
|
||||||
child->get_value(L"max", item.range.upper);
|
child->get_value(L"max", item.range.upper);
|
||||||
|
if (!child->get_value(L"step", item.range.step))
|
||||||
|
item.range.step = (item.range.upper - item.range.lower) / 10.0f;
|
||||||
item.range.type = RANGE_TYPE_RANGE;
|
item.range.type = RANGE_TYPE_RANGE;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -7385,6 +7401,8 @@ void ChgjsonDlg::OnCbnSelchangeConstraintType()
|
||||||
GetDlgItem(IDC_STATIC_TO)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_STATIC_TO)->ShowWindow(SW_HIDE);
|
||||||
GetDlgItem(IDC_EDIT_FROM)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_EDIT_FROM)->ShowWindow(SW_HIDE);
|
||||||
GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_HIDE);
|
GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_HIDE);
|
||||||
|
GetDlgItem(IDC_EDIT_STEP)->ShowWindow(SW_HIDE);
|
||||||
|
GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_HIDE);
|
||||||
constraint_list_.ShowWindow(SW_HIDE);
|
constraint_list_.ShowWindow(SW_HIDE);
|
||||||
|
|
||||||
if (sel == 0)
|
if (sel == 0)
|
||||||
|
@ -7406,6 +7424,8 @@ void ChgjsonDlg::OnCbnSelchangeConstraintType()
|
||||||
GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_EDIT_TO)->ShowWindow(SW_SHOW);
|
||||||
GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_STATIC_DEFAULT)->ShowWindow(SW_SHOW);
|
||||||
GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW);
|
GetDlgItem(IDC_EDIT_DEFAULT)->ShowWindow(SW_SHOW);
|
||||||
|
GetDlgItem(IDC_EDIT_STEP)->ShowWindow(SW_SHOW);
|
||||||
|
GetDlgItem(IDC_STATIC_STEP)->ShowWindow(SW_SHOW);
|
||||||
}
|
}
|
||||||
else // if( sel == 2)
|
else // if( sel == 2)
|
||||||
{
|
{
|
||||||
|
@ -7741,6 +7761,10 @@ void ChgjsonDlg::OnBnClickedButton4()
|
||||||
it->range.lower = _wtof(str);
|
it->range.lower = _wtof(str);
|
||||||
::GetDlgItemTextW(m_hWnd, IDC_EDIT_TO, str, _countof(str) - 1);
|
::GetDlgItemTextW(m_hWnd, IDC_EDIT_TO, str, _countof(str) - 1);
|
||||||
it->range.upper = _wtof(str);
|
it->range.upper = _wtof(str);
|
||||||
|
::GetDlgItemTextW(m_hWnd, IDC_EDIT_STEP, str, _countof(str) - 1);
|
||||||
|
it->range.step = _wtof(str);
|
||||||
|
if (fabs(it->range.step) < .000001f)
|
||||||
|
it->range.step = (it->range.upper - it->range.lower) / 10.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,7 @@ public:
|
||||||
int type;
|
int type;
|
||||||
double lower;
|
double lower;
|
||||||
double upper;
|
double upper;
|
||||||
|
double step;
|
||||||
std::vector<std::wstring> queue;
|
std::vector<std::wstring> queue;
|
||||||
}RANGE;
|
}RANGE;
|
||||||
typedef struct _hg_item
|
typedef struct _hg_item
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue