📄 dlglineinput.h
字号:
#if !defined(AFX_DLGLINEINPUT_H__6741A6C1_1191_40FA_A4DE_7825E7EFD3C3__INCLUDED_)
#define AFX_DLGLINEINPUT_H__6741A6C1_1191_40FA_A4DE_7825E7EFD3C3__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// DlgLineInput.h : header file
//
#include "BtnST.h"
#include "EditST.h"
/////////////////////////////////////////////////////////////////////////////
// CDlgLineInput dialog
///单行输入窗口类,用来输入单项输入,如日期,发票号,付款单位等.使用g_DlgLineInput变量来输入数据.
/**
* 使用方法: \n
* (1)设置标题:g_DlgLineInput.SetTitle(窗口标题); \n
* (2)设置输入提示信息:g_DlgLineInput.SetPromt(提示信息); \n
* (3)设置输入格式,输入范围:g_DlgLineInput.SetStrFormat, SetDateFormat, SetIntFormat 等 \n
* (4)显示对话框:g_DlgLineInput.DoModal(); \n
* (5)获取输入结果:g_DlgLineInput.GetStrResult, GetDateResult, GetIntResult等 \n
* 如: \n
* //输入字符串 \n
* char PayUnit[41]; \n
* g_DlgLineInput.SetTitle("输入付款单位"); \n
* g_DlgLineInput.SetPrompt("请输入付款单位:"); \n
* g_DlgLineInput.SetStrFormat(40); \n
* g_DlgLineInput.DoModal(); \n
* g_DlgLineInput.GetStrResult(PayUnit); \n
* 共支持8种输入格式:字符串/整数/BCD/HEX/金额/数量/日期/时间 \n
* 详见 TestDlgLineInput 函数 \n
*/
class CDlgLineInput : public CDialog
{
// Construction
public:
CDlgLineInput(CWnd* pParent = NULL); // standard constructor
// Dialog Data
//{{AFX_DATA(CDlgLineInput)
enum { IDD = IDD_LINE_INPUT };
CButtonST m_btnCancel;
CButtonST m_btnOK;
CEditST m_ctrlInput;
CString m_strInput;
CString m_strPrompt;
//}}AFX_DATA
enum InputFlag{
INPUT_STR = 0,//字符串
INPUT_INT,//整数
INPUT_BCD,//BCD
INPUT_HEX,//HEX
INPUT_AMOUNT,//金额
INPUT_FLTNUM,//总参数量
INPUT_DATE,//日期
INPUT_TIME,//时间
};
void SetTitle(const char *pTitle);
void SetPrompt(const char *pPrompt);
//设成字符串输入格式
void SetStrFormat(unsigned int MaxLength = 40);
//设成整数输入格式,默认最小值0,最大值FFFFFF
void SetIntFormat(unsigned int MinInt=0, unsigned int MaxInt=0xFFFFFFFF);
//设成BCD输入格式
void SetBcdFormat(unsigned int BcdLength);
//设成十六进制数输入格式
void SetHexFormat(unsigned int HexLength);
//设成金额输入格式
void SetAmountFormat();
//设成总参数量输入格式
void SetFltNumFormat();
//设成日期输入格式,范围
void SetDateFormat();
void SetMinDate(const unsigned char *MinDate=NULL);
void SetMaxDate(const unsigned char *MaxDate=NULL);
//设成时间输入格式
void SetTimeFormat();
//获取字符串的输入结果
int GetStrResult(char *StrBuf);
//获取整数的输入结果
int GetIntResult(unsigned int &Result);
//获取BCD的输入结果
int GetBcdResult(unsigned char *BcdBuf, unsigned int &LenBuf);
//获取十进制的输入结果
int GetHexResult(unsigned char *HexBuf, unsigned int &LenBuf);
//获取金额输入结果,以分为单位
int GetAmountResult(unsigned int &Amount);
//获取总参数量输入结果
int GetFltNumResult(unsigned int &NumWithoutDot, unsigned char &FloatPartOfLength);
//获取日期输入结果
int GetDateResult(unsigned char *DateBuf);
int GetDateResult(unsigned int &Year, unsigned char &Month, unsigned char &Day);
//获取时间输入结果
int GetTimeResult(unsigned char &Hour, unsigned char &Minute, unsigned char &Second);
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CDlgLineInput)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
CString m_strTitle;//标题
InputFlag m_InputFlag;//输入格式
char m_strResult[500];//字符串结果,范围
unsigned int m_strMaxLength;
unsigned int m_intResult, m_intMinInt, m_intMaxInt;//整数结果,范围
unsigned char m_bcdResult[500];//BCD输入结果,范围
unsigned int m_bcdLength;
unsigned char m_hexResult[500];//HEX输入结果,范围
unsigned char m_hexLength;
unsigned int m_amountResult;//金额输入结果
unsigned int m_numWithoutDot;//数量输入结果
unsigned char m_floatPartLength;//小数部分长度
unsigned char m_dateMin[5], m_dateMax[5], m_dateResult[5];//日期输入结果,范围
unsigned int m_Year;
unsigned char m_Month;
unsigned char m_Day;
unsigned char m_Hour, m_Minute, m_Second;//时间输入结果
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CDlgLineInput)
virtual BOOL OnInitDialog();
virtual void OnOK();
afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
extern CDlgLineInput g_DlgLineInput;
extern void TestDlgLineInput();
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_DLGLINEINPUT_H__6741A6C1_1191_40FA_A4DE_7825E7EFD3C3__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -