⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlglineinput.h

📁 视频芯片管理系统
💻 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 + -