📄 clockctrl.h
字号:
#pragma once
// ClockCtrl.h : CClockCtrl ActiveX 控件类的声明。
// CClockCtrl : 有关实现的信息,请参阅 ClockCtrl.cpp。
class CClockCtrl : public COleControl
{
DECLARE_DYNCREATE(CClockCtrl)
// 构造函数
public:
CClockCtrl();
// 重写
public:
virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
virtual void DoPropExchange(CPropExchange* pPX);
virtual void OnResetState();
// 实现
protected:
~CClockCtrl();
DECLARE_OLECREATE_EX(CClockCtrl) // 类工厂和 guid
DECLARE_OLETYPELIB(CClockCtrl) // GetTypeInfo
DECLARE_PROPPAGEIDS(CClockCtrl) // 属性页 ID
DECLARE_OLECTLTYPE(CClockCtrl) // 类型名称和杂项状态
// 消息映射
DECLARE_MESSAGE_MAP()
// 调度映射
DECLARE_DISPATCH_MAP()
afx_msg void AboutBox();
// 事件映射
DECLARE_EVENT_MAP()
// 调度和事件 ID
public:
enum {
dispidSetActiveTime = 6L, eventidActiveWhen = 1L, dispidKillTimekeeper = 5L, dispidStartTimekeeper = 4L, dispidFactoryName = 3, dispidPenWidth = 2, dispidhourPosColor = 1
};
protected:
void OnhourPosColorChanged(void);
OLE_COLOR m_hourPosColor;
void OnPenWidthChanged(void);
SHORT m_PenWidth;
void OnFactoryNameChanged(void);
CString m_FactoryName;
short m_oldHour; // 记录计时开始时的时间
short m_oldMin;
short m_oldSec;
double m_hourAngle; // 计录时针、分针和秒针在表盘上的位置
double m_minAngle;
double m_secAngle;
short m_setHour;
short m_setMin;
short m_setSec;
UINT m_timer;
void StartTimekeeper(void);
LONG KillTimekeeper(void);
void SetPointerPos();
void ActiveWhen(SHORT hour, SHORT min, SHORT sec)
{
FireEvent(eventidActiveWhen, EVENT_PARAM(VTS_I2 VTS_I2 VTS_I2), hour, min, sec);
}
void SetActiveTime(SHORT hour, SHORT min, SHORT sec);
void DrawPointer(CDC *pDC,CRect rect,double d1,double d2,double d3,double angle);
public:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnTimer(UINT nIDEvent);
virtual BOOL DestroyWindow();
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -