📄 dlgdoc.h
字号:
/*########################################################################
【文件名】: DlgDoc.h
【名 称】: DataWin 封装类.
【版 本】: 1.0
【作 者】: 梁均源
【E-mail】: KelvinSpace@citiz.net
注意:必需保留以上信息!!!
########################################################################*/
#if !defined(AFX_DLGDATA_H__3B43F921_D1B0_11D9_AF60_0050BAB04A6A__INCLUDED_)
#define AFX_DLGDATA_H__3B43F921_D1B0_11D9_AF60_0050BAB04A6A__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
////////////////////////////////////////////////////////
//安装COM在新工程App文件
//App::InitInstance()加入
// CoInitialize(NULL);
//App::ExitInstance()加入
// CoUninitialize();
////////////////////////////////////////////////////////
//状态
#define CDD_NONE 0 //无
#define CDD_RETRIEVE 0x1 //自动导入
#define CDD_UPDATE 0x2 //允许更新
#define CDD_CHECK 0x4 //允许修改检测
#define CDD_UPPER 0x8 //大写
#define CDD_LOWER 0x10 //小写
//LISTDOC专用
#define CDD_RIGHT 0x20 //向右对齐
#define CDD_LEFT 0x40 //向左对齐
#define CDD_CENTER 0x80 //中间对齐
#define CDD_AUTOKEY 0x100 //自动ID
//类型
#define CDN_CHECKBOX 0
#define CDN_CHECKBOX3 1
#define CDN_EDIT 2
#define CDN_COMBOBOX 3
#define CDN_LISTBOX 4
#define CDN_LONGDATECTRL 5
#define CDN_SHORTDATECTRL 6
#define CDN_TIMECTRL 7
#define CDN_DATETIMEEDIT 8
#define CDN_DATEEDIT 9
#define CDN_TIMEEDIT 10
#define CDN_CURRENCYEDIT 11
#define CDN_NUMERICEDIT 12
#define CDN_MASKEDEDIT 13
#define CDN_STATICIMAGE 14
#define CDD_MOIDFYED 0x1 //已经被修改
/////////////////////////////////////////////////////////////////////////////
// CDataWin dialog
//*表示还没有实际使用
class CDlgDataCell
{
public:
CDlgDataCell::CDlgDataCell()
{
Reset();
}
void Reset(void)
{
strName = _T("");
strClass = _T("");
strText = _T("");
// strMask = _T("");
strDefText = _T("");
strValues = _T("");
dwStyle = CDD_NONE;
dwState = 0;
// iSupper = 0;
// iIndex = 0;
nID = 0;
hWnd = 0;
pControl = NULL;
fZoomV = 1;
fZoomH = 1;
nWidth = 0;
iIndexCol = 3000; //自动生成
}
CString strName; //数据项目名称
CString strClass; //类名
int nClass ; //类编号
// CString strMask; //字符掩码(如果是RadioBox表示分组名称)
CString strDefText; //默认字符
CString strValues; //取值范围
DWORD dwState;
// int iIndex ; //ListBox和ComboBox默认选项
UINT nID; //控件ID
UINT nOldID; //控件原ID
HWND hWnd; //句柄
DWORD dwStyle ; //控件样式
void *pControl; //控件CEdit/CEditMask
//Combox 专用
float fZoomH; //水平放大
float fZoomV; //垂直放大
//CReportCtrl 专用
CString strText; //指定列表头文本
int nWidth; //宽度
int iIndexCol; //Ctrl中的列顺序
};
//vector <CDataCell> m_data; //数据库数据缓存
//加对vector说明
//#include <iostream>
#include <vector>
using namespace std;
#define BEGIN_ID 2500
/////////////////////////////////////////////////////////////////////////////
// CDlgDoc
#include "..\ado\ado.H"
#include "..\MaskEdit\amsEdit.H"
#include "..\DateEdit\DateEdit.H"
#include "StaticImage.H"
//#include "predata.H"
#include "PreDialog.H"
///////////////////////////////////////////
//功能:
//在IDE环境设计窗口,通过枚举STATIC类型
//并解释当中命令,自动连结数据库
//动态创建控件,对数据记录创建和修改
///////////////////////////////////////////
class CDlgDoc
{
// Construction
public:
UINT _Class4Name(CString &strName);
BOOL NewBefore(CString strTableName);
BOOL m_bModify;
//////////////////////////////////////////
//当前数据库默认不是ORACLE系统
//只会影响Append命令
BOOL m_bOracle;
void SetOracel(BOOL bFolg) {m_bOracle = bFolg;};
BOOL GetOracel() {return m_bOracle;};
//////////////////////////////////////////
//数据库操作
//
virtual int Delete(BOOL bCon = true, BOOL bMsg = true);
virtual BOOL Append(CString strTableName, BOOL bMsg = true);
virtual BOOL Save(BOOL bTrans = true, BOOL bMsg = true);
virtual void Release(void);
virtual void Reset(); //
virtual void Cancel();
static void RetrieveA(void); //不含功能
virtual int Retrieve(CString strSQL = _T(""),
BOOL bMsg = true,
long lOption = adCmdText,
CursorTypeEnum CursorType = adOpenStatic,
LockTypeEnum LockType = adLockOptimistic);
//设置和返回数据库连接
BOOL SetConnection(CAdoConnection *pCon);
CAdoConnection *GetConnection(){return m_pConnection;}
CAdoRecordSet *GetRecordSet(){return &m_RecordSet;}
//设置和返回SQL命令
void SetSQL(CString str){m_strSQL = str;}
CString GetSQL() {return m_strSQL;}
//数据对比
void Backup(void); //备份
void Restore(void); //恢复
virtual BOOL IsModify(void); //是否修改
///////////////////////////////////////////
//解释命令、生成控件
//连接窗口、创建控件
BOOL Init(CDialog *pDlg);
BOOL Init4Control(CPreDialog *pPreDlg);
void ReleaseControl(void);
//默认生成的控件的类型
void SetDefStyle(DWORD dwStyle) {m_dwDefStyle = dwStyle;};
DWORD GetDefStyle(void) {return m_dwDefStyle;};
//返回控件指针
void * GetClass(LPCSTR pName, LPCSTR pClassName = NULL);
void * GetClass(UINT nID, LPCSTR pClassName = NULL);
//解释结构
BOOL Construe(CDlgDataCell *pCell, char *p);
BOOL SetWindowTextEx(CDlgDataCell *pCell, CString &strText);
CString GetWindowTextEx(CDlgDataCell *pCell);
int _GetCell(CString &strScr, CString &strCell);
int _FindCell(CString strScr, CString strCell);
//动态创建控件
BOOL CreateControl(CDlgDataCell *pCell,UINT nID,
RECT rect, DWORD dwStyle,DWORD dwStyleEx,
PDATAWINDOWVIEW pData);
vector <CDlgDataCell> m_data; //统一的控件结构
CDlgDoc(); // standard constructor
~CDlgDoc(); // standard constructor
protected:
vector <CString> m_Sur; //存储备份的数据
CString m_strKey; //主键,只支持单一主键(只对CListDoc起作用)
CString m_strText; //主键对应说明 (只对CListDoc起作用)
DWORD m_dwDefStyle; //默认控件类型
CAdoConnection *m_pConnection; //数据库连结
CAdoRecordSet m_RecordSet; //数据集
CString m_strSQL; //SQL命令
UINT m_nBeginID; //起启控件ID
CDialog *m_pDlg; //窗口指针
};
#endif // !defined(AFX_DLGDATA_H__3B43F921_D1B0_11D9_AF60_0050BAB04A6A__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -