Files
gjm 164968b62e chore
把非utf8-bom编码的cpp/h文件改为 utf8 bom 编码, msvc识别utf8编码时,如果不是bom格式的,会使用当前cp_oem来解码.
2026-10-04 00:04:20 +08:00

163 lines
5.3 KiB
C++

#if !defined(__DLGPARAMDEFINE_H__)
#define __DLGPARAMDEFINE_H__
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "resource.h"
#include "InPlaceCtrls.h"
#include "PropertyListBox.h"
#include "KTParamClass.h"
class CDlgParamDefine : public CDialog
{
public:
// 构造函数
CDlgParamDefine(CWnd* pParent = NULL);
protected:
// 初始化类型树
void OnInitClassTree(ULONG lParent, HTREEITEM hParent);
// 清除属性列表中数据
void OnCleanAttrTab(CPropertyItemTab* pTab);
// 清除属性列表中数据
void OnCleanAttributeList();
// 清除约束列表中数据
void OnCleanRuleTab(CPropertyItemTab* pTab);
// 清除约束列表中数据
void OnCleanRuleList();
// 添加或更新类别所有数据
void OnUpdateClassItemData(HTREEITEM hItem);
// 更新类别数据
void OnUpdateClassAttrData(CPropertyItemTab* pTab, KTParamClass& cClassData);
// 更新属性数据
void OnUpdateAttributeData(CPropertyItemTab* pTab, KTParamAttribute& cAttrData);
// 更新约束数据
void OnUpdateRuleData(CPropertyItemTab* pTab, KTParamRule& pRule);
// 转换数据类型到Item的类型
CPropertyItem::ItemStyle AsItemStyle(LPCTSTR pszDataType, BOOL bMulti = FALSE, BOOL bOverride = FALSE);
// 转换数据为指定Item类型的数据
LPCTSTR AsItemString(CString& sData, LPCTSTR pszDataType);
// 根据变量描述表表达式获得表名
LPCTSTR AsDescTable(CString& sDescTable, LPCTSTR pszVarDesc, const CMapStringToString& mapVarToValue);
// 转换数据为指定的描述字符串
LPCTSTR AsItemDesc(CString& sDesc, LPCTSTR pszData, LPCTSTR pszVarDesc, const CMapStringToString& mapVarToValue);
// 转换描述为指定的数据字符串
LPCTSTR ByItemDesc(CString& sData, LPCTSTR pszDesc, LPCTSTR pszVarDesc, const CMapStringToString& mapVarToValue);
// 显示指定类型的属性和约束数据
void OnShowClassData(HTREEITEM hItem, BOOL bEdit);
// 显示指定类型的类属性
void OnShowClassAttrItems(HTREEITEM hItem, BOOL bEdit);
// 显示指定类的属性
void OnShowAttributeItems(ULONG lId, BOOL bEdit);
// 显示指定类属性的属性
void OnShowAttributeAttrItems(CPropertyItemTab* pTab, ULONG lId, BOOL bEdit);
// 显示分类约束数据条目
void OnShowRuleData(HTREEITEM hItem, BOOL bEdit);
// 显示指定类约束的属性
void OnShowRuleAttrItems(CPropertyItemTab* pTab, ULONG lId, BOOL bEdit);
// 显示约束参数表达式
void OnShowExpression(CPropertyItemTab* pTab, ULONG lId, BOOL bEdit);
void OnShowExpression(CPropertyItemTab* pTab, CMapStringToString& mapVarTypeToValue, BOOL bEdit);
// 重新调整控件
void OnRelayout();
// 取得分隔区间,参数为长度为3的数组
void GetSepRect(CRect* pRecSep);
protected:
// 当前数据是否被修改
BOOL m_bPartModified;
// 当前分类数据
KTParamClass m_cCurClass;
// 类型数操作工具条
CToolBar m_wndTBarClass;
// 属性列表操作工具条
CToolBar m_wndTBarAttr;
// 图标列表
CImageList m_imglstIcon;
// 最小窗口尺寸
CSize m_szMin;
// 鼠标左键按下标识
BOOL m_bMouseDown;
// 上一个鼠标位置点
CPoint m_ptLast;
// 当前点击的分隔条位置
int m_iCurSep;
// 是否按了ESCAPE键
BOOL m_bEscape;
// 拷贝的分类
HTREEITEM m_hCopyClass;
protected:
//{{AFX_DATA(CDlgParamDefine)
enum { IDD = IDD_PARAMDEFINE };
CTreeCtrl m_wndTreeClass;
CStatic m_wndStcPreview;
CPropertyListBox m_wndLstAttribute;
CPropertyListBox m_wndLstRule;
//}}AFX_DATA
//{{AFX_VIRTUAL(CDlgParamDefine)
public:
virtual BOOL Create(CWnd* pParentWnd);
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
//}}AFX_VIRTUAL
protected:
//{{AFX_MSG(CDlgParamDefine)
virtual BOOL OnInitDialog();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
afx_msg void OnMouseMove(UINT nFlags, CPoint point);
afx_msg void OnCaptureChanged(CWnd *pWnd);
afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
afx_msg void OnClassNew();
afx_msg void OnClassDelete();
afx_msg void OnClassRename();
afx_msg void OnBeginLabelEditTreeClass(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnEndLabelEditTreeClass(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnAttrNew();
afx_msg void OnAttrDelete();
afx_msg void OnAttrRename();
afx_msg void OnRuleNew();
afx_msg void OnRuleSelect();
afx_msg void OnRuleDelete();
afx_msg void OnSelchangingTreeClass(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDestroy();
afx_msg void OnAttrUp();
afx_msg void OnAttrDown();
afx_msg void OnRuleUp();
afx_msg void OnRuleDown();
afx_msg void OnClassSave();
virtual void OnCancel();
afx_msg void OnClassTest();
afx_msg void OnClassCopy();
afx_msg void OnAttrPaste();
afx_msg void OnRulePaste();
afx_msg void OnClassImport();
//}}AFX_MSG
afx_msg LRESULT OnPropListBoxNotify(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnSetMessageString(WPARAM wParam, LPARAM lParam);
afx_msg BOOL OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult);
afx_msg void OnMenuSelect(UINT nItemID, UINT nFlags, HMENU hSysMenu);
afx_msg void OnExitMenuLoop(BOOL bIsTrackPopupMenu);
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
#endif // !defined(__DLGPARAMDEFINE_H__)