soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SToolTip.h
1#ifndef __STOOLTIP__H__
2#define __STOOLTIP__H__
3
5#include <core/SNativeWnd.h>
6#include <helper/obj-ref-impl.hpp>
7
8SNSBEGIN
9
10/**
11 * @class STipCtrl
12 * @brief 提示控件类,继承自IToolTip和SNativeWnd
13 */
15 : public IToolTip
16 , public SNativeWnd {
17 public:
18 /**
19 * @brief 构造函数
20 */
21 STipCtrl(void);
22
23 /**
24 * @brief 析构函数
25 */
26 virtual ~STipCtrl(void);
27
28 /**
29 * @brief 创建提示控件
30 * @return 如果成功创建返回TRUE,否则返回FALSE
31 */
32 BOOL Create();
33
34 public: // IToolTip
35 /**
36 * @brief 预翻译消息
37 * @param pMsg 消息结构指针
38 * @return 如果消息被处理返回TRUE,否则返回FALSE
39 */
40 STDMETHOD_(BOOL, PreTranslateMessage)(THIS_ MSG *pMsg) OVERRIDE;
41
42 /**
43 * @brief 更新提示信息
44 * @param id 提示ID指针
45 * @param rc 目标矩形区域
46 * @param pszTip 提示文本
47 * @param nScale 缩放比例
48 */
49 STDMETHOD_(void, UpdateTip)(THIS_ const TIPID *id, RECT rc, LPCTSTR pszTip, int nScale) OVERRIDE;
50
51 /**
52 * @brief 清除提示信息
53 */
54 STDMETHOD_(void, ClearTip)(THIS) OVERRIDE;
55
56 /**
57 * @brief 传递事件
58 * @param pMsg 消息结构指针
59 */
60 STDMETHOD_(void, RelayEvent)(THIS_ const MSG *pMsg) OVERRIDE;
61
62 /**
63 * @brief 设置提示信息
64 * @param rc 目标矩形区域
65 * @param tipAlign 提示对齐方式
66 * @param pszTip 提示文本
67 * @param nScale 缩放比例
68 */
69 STDMETHOD_(void, SetToolTip)(THIS_ LPCRECT rc, UINT tipAlign, LPCTSTR pszTip, int nScale) OVERRIDE;
70
71 protected:
72 /**
73 * @brief 处理最终消息
74 * @param hWnd 窗口句柄
75 */
76 virtual void OnFinalMessage(HWND hWnd);
77
78 /**
79 * @brief 更新字体
80 * @param nScale 缩放比例
81 */
82 void UpdateFont(int nScale);
83
84 /**
85 * @brief 处理定时器消息
86 * @param idEvent 定时器ID
87 */
88 void OnTimer(UINT_PTR idEvent);
89
90 /**
91 * @brief 处理绘制消息
92 * @param dc 设备上下文句柄
93 */
94 void OnPaint(HDC dc);
95
96 /**
97 * @brief 显示或隐藏提示
98 * @param bShow 是否显示提示
99 */
100 void ShowTip(BOOL bShow);
101
102 BEGIN_MSG_MAP_EX(STipCtrl)
103 MSG_WM_PAINT(OnPaint)
104 MSG_WM_TIMER(OnTimer)
105 REFLECT_NOTIFICATIONS_EX()
106 END_MSG_MAP()
107
108 protected:
109 int m_nDelay; // 显示延迟时间(毫秒)
110 int m_nShowSpan; // 显示持续时间(毫秒)
111 SStringT m_strTip; // 提示文本
112 int m_nScale; // 缩放比例
113 CRect m_rcTarget; // 目标矩形区域
114 HFONT m_font; // 字体句柄
115
116 TIPID m_id; // 提示ID
117
118 UINT m_tipAlign; // 提示对齐方式
119};
120
121SNSEND
122
123#endif // __STOOLTIP__H__
Interface and Implementation for Native Window Handling.
void SetToolTip(LPCRECT rc, UINT tipAlign, LPCTSTR pszTip, int nScale) OVERRIDE
设置提示信息
Definition SToolTip.cpp:121
virtual ~STipCtrl(void)
析构函数
Definition SToolTip.cpp:25
BOOL Create()
创建提示控件
Definition SToolTip.cpp:31
void RelayEvent(const MSG *pMsg) OVERRIDE
传递事件
Definition SToolTip.cpp:46
void ShowTip(BOOL bShow)
显示或隐藏提示
Definition SToolTip.cpp:174
void OnPaint(HDC dc)
处理绘制消息
Definition SToolTip.cpp:265
void UpdateFont(int nScale)
更新字体
Definition SToolTip.cpp:106
void UpdateTip(const TIPID *id, RECT rc, LPCTSTR pszTip, int nScale) OVERRIDE
更新提示信息
Definition SToolTip.cpp:147
BOOL PreTranslateMessage(MSG *pMsg) OVERRIDE
预翻译消息
Definition SToolTip.cpp:287
virtual void OnFinalMessage(HWND hWnd)
处理最终消息
Definition SToolTip.cpp:296
STipCtrl(void)
构造函数
Definition SToolTip.cpp:14
void OnTimer(UINT_PTR idEvent)
处理定时器消息
Definition SToolTip.cpp:249
void ClearTip() OVERRIDE
清除提示信息
Definition SToolTip.cpp:166
Interface for Tooltip Objects.
Interface for Tooltip Objects.
Definition stooltip-i.h:61
Identifier for a tooltip.
Definition stooltip-i.h:27