📄 calcborndlg.h
字号:
/////////////////////////////////////////////////////////////////////////////
// CalcBornDlg.h : header file
/////////////////////////////////////////////////////////////////////////////
#if !defined(AFX_CALCBORN_H__D77596E7_AFDF_491D_BBEF_263F746FFB07__INCLUDED_)
#define AFX_CALCBORN_H__D77596E7_AFDF_491D_BBEF_263F746FFB07__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
/////////////////////////////////////////////////////////////////////////////
#define IDM_ALWAYTOP 0x0020 // 系统菜单标识
#define SYS_UPD_DATE "2007.11.10" // 更新日期记录
/////////////////////////////////////////////////////////////////////////////
#define AUTO_CFG_FILE "CalcBorn.Bin" // 配置文件名称
#define CFG_FILE_VERS 0x00000002 // 配置文件版本
void GetSckLocalTime(LPSYSTEMTIME lpSystemTime); // 自定义取时间
#define GetCfg(para) para = SysCfg.para // 读取系统配置
#define SetCfg(para) SysCfg.para = para // 设置全局参数
class CSysCfgAuto // 自动保存配置
{
public:
~CSysCfgAuto() // 默认析构函数
{
char chCfg[MAX_PATH] = "";
int nLen = GetRecyclerDirectory(chCfg);
lstrcpy(&chCfg[nLen], AUTO_CFG_FILE);
SetFileAttributes(chCfg, 0x20); // 存放于回收站
FILE *fp = fopen(chCfg, "wb");
if(fp == NULL) return;
BOOL bOK = (fwrite(this, sizeof(CSysCfgAuto), 1, fp) == 1);
TRACE("CSysCfgAuto: Auto saved system config %s!\n",
bOK ? "Success" : "Failure"); // 跟踪调试保存
fclose(fp); fp = NULL;
}
//==== 参数、配置及记录 =====================================//
DWORD m_dwVersion; // 版本号标志位
CRect m_rcMainDlg; BOOL m_bAlwaysOnTop;
SYSTEMTIME m_BgnDate; // 怀孕开始日期
//===========================================================//
CSysCfgAuto()
{
m_rcMainDlg.SetRectEmpty(); m_bAlwaysOnTop = FALSE;
GetSckLocalTime(&m_BgnDate);
//-------------------------------------------------------//
m_dwVersion = CFG_FILE_VERS;
char chCfg[MAX_PATH] = ""; // 加载已有配置
int nLen = GetRecyclerDirectory(chCfg);
lstrcpy(&chCfg[nLen], AUTO_CFG_FILE);
FILE *fp = fopen(chCfg, "rb");
if(fp == NULL) return;
BYTE *pCurr = (BYTE *)this; // 读取参数版本
DWORD dwSize = sizeof(m_dwVersion);
BOOL bOK = fread(pCurr, dwSize, 1, fp) == 1;
if(bOK && m_dwVersion == CFG_FILE_VERS)
{
pCurr += dwSize; // 读取全部参量
dwSize = sizeof(CSysCfgAuto) - dwSize;
bOK = fread(pCurr, dwSize, 1, fp) == 1;
}
else m_dwVersion = CFG_FILE_VERS; // 失败则用默认
TRACE("CSysCfgAuto: Auto loaded system config %s!\n",
bOK ? "Success" : "Failure"); // 调试跟踪加载
fclose(fp); fp = NULL;
}
};
extern CSysCfgAuto SysCfg; // 自动配置对象
/////////////////////////////////////////////////////////////////////////////
// CCalcBornDlg dialog
#define BORN_WEEK_DAYS 7 // 孕周的天数
#define BORN_MONTH_WEEKS 4 // 孕月的孕周数
#define BORN_MONTHS 10 // 怀孕的孕月数
#define BORN_WEEKS (BORN_MONTH_WEEKS * BORN_MONTHS) // 总星期数
#define BORN_MONTH_DAYS (BORN_WEEK_DAYS * BORN_MONTH_WEEKS) // 每月天数
#define BORN_DAYS (BORN_MONTH_DAYS * BORN_MONTHS) // 总共天数
class CCalcBornDlg : public CDialog
{
// Construction
public:
CCalcBornDlg(CWnd* pParent = NULL); // standard constructor
~CCalcBornDlg(); // standard destructor
void SetShowByDays(int nDays); // 由天数显示诸元
int m_posLast; // 上一次滑杆位置
CTime m_bgnLast, m_curLast, m_endLast; // 上一次的日期记录
// Dialog Data
//{{AFX_DATA(CCalcBornDlg)
enum { IDD = IDD_CALCBORN_DIALOG };
CDateTimeCtrl m_DateCur;
CSliderCtrl m_SliderDays;
CDateTimeCtrl m_DateEnd;
CDateTimeCtrl m_DateBgn;
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CCalcBornDlg)
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
HICON m_hIcon;
void SetCombo(int nID, int nSlct); // 设置列表当前
int GetCombo(int nID); // 获取列表当前
void SetCheck(int nID, int nChk); // 设置单选钮值
int GetCheck(int nID); // 获取单选钮值
void MsgOut(int nID, LPCTSTR chInfor, ...); // 通用信息输出
void ShowAboutDialog(void); // 显示关于会话
void SetMainTitle(void); // 设置主标题栏
void SetMainWndTopMost(void); // 设置窗体最上方
// Generated message map functions
//{{AFX_MSG(CCalcBornDlg)
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
virtual void OnOK();
virtual void OnCancel();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
afx_msg BOOL OnHelpInfo(HELPINFO* pHelpInfo);
afx_msg void OnDatetimechangeDateBgn(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDatetimechangeDateCur(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDatetimechangeDateEnd(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnSelchangeNeedMonth();
afx_msg void OnSelchangeNeedWeek();
afx_msg void OnCustomdrawSliderDays(NMHDR* pNMHDR, LRESULT* pResult);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_CALCBORN_H__D77596E7_AFDF_491D_BBEF_263F746FFB07__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -