doc_and_tools/tools/apps/hgjson/DlgCondition.h

60 lines
1.6 KiB
C
Raw Normal View History

2023-09-13 03:59:53 +00:00
#pragma once
// CDlgCondition 对话框
#include <string>
#include <vector>
#include <functional>
class CDlgCondition : public CDialogEx
{
DECLARE_DYNAMIC(CDlgCondition)
std::wstring condition_;
std::wstring name_;
CComboBox items_;
CComboBox oper_;
CComboBox value_;
CComboBox value2_;
std::function < std::wstring(const wchar_t*/*name*/, int/*index*/)> item_val_;
std::function<std::wstring(int/*index*/, int*/*type*/, int*/*range type*/, std::wstring* /*name*/)> item_all_;
std::wstring get_item_text(UINT id);
std::wstring get_value(int range, bool first);
void enable_value_controls(bool enable, int range, bool second = true);
void clear_items(void);
typedef struct _opt_item
{
std::wstring name;
std::wstring title;
int range;
int type;
}OPTITEM, *LPOPTITEM;
public:
CDlgCondition(const wchar_t* name, CWnd* pParent = nullptr); // 标准构造函数
virtual ~CDlgCondition();
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_CONDITION };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
virtual BOOL OnInitDialog();
DECLARE_MESSAGE_MAP()
public:
void init_data(std::function<std::wstring(int/*index*/, int*/*type*/, int*/*range type*/, std::wstring* /*name*/)> item, std::function < std::wstring(const wchar_t*/*name*/, int/*index*/)> value, const wchar_t* data0);
std::wstring get_condition(void);
afx_msg void OnBnClickedOk();
afx_msg void OnBnClickedButton1();
afx_msg void OnBnClickedCancel();
afx_msg void OnCbnSelchangeComboItem();
afx_msg void OnCbnSelchangeComboLogic();
};