soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
SSliderBar.h
Go to the documentation of this file.
1/**
2 * Copyright (C) 2014-2050 SOUI团队
3 * All rights reserved.
4 *
5 * @file SSliderBar.h
6 * @brief
7 * @version v1.0
8 * @author soui
9 * @date 2014-07-08
10 *
11 * Describe
12 */
13#ifndef __SSLIDERBAR__H__
14#define __SSLIDERBAR__H__
15#include "SCmnCtrl.h"
16
17SNSBEGIN
18/**
19 * @class SSliderBar
20 * @brief 滑块工具条
21 *
22 * Describe 滑块工具条
23 */
24class SOUI_EXP SSliderBar : public SProgress {
25 DEF_SOBJECT(SProgress, L"sliderbar")
26
27 struct RANGE
28 {
29 int value1;
30 int value2;
31 };
32
33 public:
34 /**
35 * SSliderBar::SSliderBar
36 * @brief 构造函数
37 *
38 * Describe 构造函数
39 */
40 SSliderBar();
41
42 /**
43 * SSliderBar::~SSliderBar
44 * @brief 析构函数
45 *
46 * Describe 析构函数
47 */
49
50 enum
51 {
52 SC_RAIL,
53 SC_SELECT,
54 SC_THUMB,
55 SC_RAILBACK,
56 };
57
58 STDMETHOD_(BOOL, SetValue)(THIS_ int nValue) OVERRIDE;
59
60 protected:
61 /**
62 * SSliderBar::HitTest
63 * @brief 测试点
64 * @param CPoint pt -- 坐标
65 *
66 * Describe 测试某个点是否在滚动条上
67 */
68 int HitTest(CPoint pt);
69
70 protected:
71 BOOL m_bDrag; /**< 是否允许拖动 */
72 CPoint m_ptDrag; /**< 拖动位置 */
73 int m_nDragValue; /**< 拖动距离 */
74 int m_uHtPrev; /**< 上次的鼠标位置 */
75
76 SAutoRefPtr<ISkinObj> m_pSkinThumb; /**< 皮肤对象 */
77 BOOL m_bThumbInRail; /**< 滑块包含在轨道中 */
78 BOOL m_bDrawRail; /**< 绘制轨道 */
79 BOOL m_bDragTip; /**< 拖动滑块时在tip中显示数值 */
80 protected:
81 void ShowValueInTip(int nValue);
82 /**
83 * SSliderBar::NotifyPos
84 * @brief 通知
85 * @param SliderBarAction action -- 消息码
86 * @param int value -- 值
87 *
88 * Describe 自定义消息响应函数
89 */
90 LRESULT NotifyPos(SliderBarAction action, int value);
91
92 /**
93 * SSliderBar::GetDesiredSize
94 * @brief 获取大小
95 * @param int wid -- 容器宽度
96 * @param int hei -- 容器高度
97 * @return 返回CSize
98 *
99 * Describe 获取大小
100 */
101 STDMETHOD_(SIZE, GetDesiredSize)(THIS_ int nParentWid, int nParentHei);
102
103 virtual void OnColorize(COLORREF cr);
104
105 virtual void OnScaleChanged(int scale);
106
107 /**
108 * SSliderBar::GetPartRect
109 * @brief
110 * @param UINT uSBCode
111 *
112 * Describe
113 */
114 CRect GetPartRect(UINT uSBCode);
115
116 RANGE _GetPartRange(int nLength, int nThumbSize, BOOL bThumbInRail, int nMin, int nMax, int nValue, UINT uSBCode);
117
118 /**
119 * SSliderBar::OnPaint
120 * @brief 绘制
121 * @param IRenderTarget * pRT -- 绘画设备
122 *
123 * Describe 绘制
124 */
125 void OnPaint(IRenderTarget *pRT);
126
127 /**
128 * SSliderBar::OnLButtonUp
129 * @brief 左键抬起
130 * @param UINT nFlags -- 虚拟键标志
131 * @param CPoint point -- 坐标
132 *
133 * Describe 消息响应函数
134 */
135 void OnLButtonUp(UINT nFlags, CPoint point);
136
137 /**
138 * SSliderBar::OnLButtonDown
139 * @brief 左键按下
140 * @param UINT nFlags -- 虚拟键标志
141 * @param CPoint point -- 坐标
142 *
143 * Describe 消息响应函数
144 */
145 void OnLButtonDown(UINT nFlags, CPoint point);
146
147 /**
148 * SSliderBar::OnMouseMove
149 * @brief 鼠标移动
150 * @param UINT nFlags -- 虚拟键标志
151 * @param CPoint point -- 坐标
152 *
153 * Describe 消息响应函数
154 */
155 void OnMouseMove(UINT nFlags, CPoint point);
156
157 /**
158 * SSliderBar::OnMouseLeave
159 * @brief 鼠标移动事件
160 *
161 * Describe 消息响应函数
162 */
163 void OnMouseLeave();
164
165 SOUI_MSG_MAP_BEGIN()
166 MSG_WM_LBUTTONDOWN(OnLButtonDown)
167 MSG_WM_LBUTTONUP(OnLButtonUp)
168 MSG_WM_MOUSEMOVE(OnMouseMove)
169 MSG_WM_MOUSELEAVE(OnMouseLeave)
170 MSG_WM_PAINT_EX(OnPaint)
171 SOUI_MSG_MAP_END()
172
173 SOUI_ATTRS_BEGIN()
174 ATTR_SKIN(L"thumbSkin", m_pSkinThumb, TRUE)
175 ATTR_BOOL(L"thumbInRail", m_bThumbInRail, TRUE)
176 ATTR_BOOL(L"drawRail", m_bDrawRail, TRUE)
177 ATTR_BOOL(L"dragTip", m_bDragTip, TRUE)
178 SOUI_ATTRS_END()
179};
180
181SNSEND
182
183#endif // __SSLIDERBAR__H__
通用控件
Smart pointer class for managing COM-style reference-counted objects.
SProgress()
构造函数
Definition SCmnCtrl.cpp:869
virtual void OnColorize(COLORREF cr)
处理颜色化事件
Definition SCmnCtrl.cpp:985
void OnPaint(IRenderTarget *pRT)
绘制控件
Definition SCmnCtrl.cpp:905
virtual void OnScaleChanged(int scale)
处理缩放变化事件
Definition SCmnCtrl.cpp:994
CPoint m_ptDrag
Definition SSliderBar.h:72
int m_uHtPrev
Definition SSliderBar.h:74
CRect GetPartRect(UINT uSBCode)
void OnMouseMove(UINT nFlags, CPoint point)
鼠标移动
BOOL m_bThumbInRail
Definition SSliderBar.h:77
SSliderBar()
构造函数
void OnMouseLeave()
鼠标移动事件
SAutoRefPtr< ISkinObj > m_pSkinThumb
Definition SSliderBar.h:76
int m_nDragValue
Definition SSliderBar.h:73
BOOL m_bDragTip
Definition SSliderBar.h:79
int HitTest(CPoint pt)
测试点
void OnPaint(IRenderTarget *pRT)
绘制
void OnLButtonUp(UINT nFlags, CPoint point)
左键抬起
BOOL m_bDrawRail
Definition SSliderBar.h:78
BOOL m_bDrag
Definition SSliderBar.h:71
LRESULT NotifyPos(SliderBarAction action, int value)
通知
SIZE GetDesiredSize(int nParentWid, int nParentHei)
获取大小
void OnLButtonDown(UINT nFlags, CPoint point)
左键按下
void OnMouseMove(UINT nFlags, CPoint pt)
Handles the mouse move event.
Definition Swnd.cpp:2131
void OnMouseLeave()
Handles the mouse leave event.
Definition Swnd.cpp:2147
void OnLButtonUp(UINT nFlags, CPoint pt)
Handles the left mouse button up event.
Definition Swnd.cpp:2105
void OnLButtonDown(UINT nFlags, CPoint pt)
Handles the left mouse button down event.
Definition Swnd.cpp:2092
Interface for rendering target objects.
Definition SRender-i.h:1440