8 } ClockWndFormats
[] = {
10 { FALSE
, 0, L
"dddd" },
11 { FALSE
, DATE_SHORTDATE
, NULL
}
13 const UINT ClockWndFormatsCount
= _ARRAYSIZE(ClockWndFormats
);
15 #define CLOCKWND_FORMAT_COUNT ClockWndFormatsCount
17 extern const WCHAR szTrayClockWndClass
[];
19 public CComObjectRootEx
<CComMultiThreadModelNoCS
>,
20 public CWindowImpl
< CTrayClockWnd
, CWindow
, CControlWinTraits
>
33 DWORD IsTimerEnabled
: 1;
34 DWORD IsInitTimerEnabled
: 1;
35 DWORD LinesMeasured
: 1;
36 DWORD IsHorizontal
: 1;
42 SIZE LineSizes
[CLOCKWND_FORMAT_COUNT
];
43 WCHAR szLines
[CLOCKWND_FORMAT_COUNT
][48];
47 virtual ~CTrayClockWnd();
50 LRESULT
OnThemeChanged();
51 LRESULT
OnThemeChanged(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
54 WORD
GetMinimumSize(IN BOOL Horizontal
, IN OUT PSIZE pSize
);
57 UINT
CalculateDueTime();
59 VOID
CalibrateTimer();
60 LRESULT
OnDestroy(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
61 LRESULT
OnPaint(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
62 VOID
SetFont(IN HFONT hNewFont
, IN BOOL bRedraw
);
63 LRESULT
DrawBackground(HDC hdc
);
64 LRESULT
OnEraseBackground(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
65 LRESULT
OnTimer(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
66 LRESULT
OnGetMinimumSize(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
67 LRESULT
OnNcHitTest(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
68 LRESULT
OnSetFont(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
69 LRESULT
OnCreate(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
70 LRESULT
OnSize(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
71 LRESULT
OnTaskbarSettingsChanged(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
72 LRESULT
OnNcLButtonDblClick(UINT uMsg
, WPARAM wParam
, LPARAM lParam
, BOOL
& bHandled
);
75 DECLARE_WND_CLASS_EX(szTrayClockWndClass
, CS_DBLCLKS
, COLOR_3DFACE
)
77 BEGIN_MSG_MAP(CTrayClockWnd
)
78 MESSAGE_HANDLER(WM_CREATE
, OnCreate
)
79 MESSAGE_HANDLER(WM_DESTROY
, OnDestroy
)
80 MESSAGE_HANDLER(WM_ERASEBKGND
, OnEraseBackground
)
81 MESSAGE_HANDLER(WM_SIZE
, OnSize
)
82 MESSAGE_HANDLER(WM_PAINT
, OnPaint
)
83 MESSAGE_HANDLER(WM_PRINTCLIENT
, OnPaint
)
84 MESSAGE_HANDLER(WM_THEMECHANGED
, OnThemeChanged
)
85 MESSAGE_HANDLER(WM_TIMER
, OnTimer
)
86 MESSAGE_HANDLER(WM_NCHITTEST
, OnNcHitTest
)
87 MESSAGE_HANDLER(WM_SETFONT
, OnSetFont
)
88 MESSAGE_HANDLER(TCWM_GETMINIMUMSIZE
, OnGetMinimumSize
)
89 MESSAGE_HANDLER(TWM_SETTINGSCHANGED
, OnTaskbarSettingsChanged
)
90 MESSAGE_HANDLER(WM_NCLBUTTONDBLCLK
, OnNcLButtonDblClick
)
93 HWND
_Init(IN HWND hWndParent
);