用于EagleEye3.0 规则集漏报和误报测试的示例项目,项目收集于github和gitee
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

177 lines
3.9 KiB

/**
* Copyright (C) 2014-2050 SOUI团队
* All rights reserved.
*
* @file SSliderBar.h
* @brief
* @version v1.0
* @author soui
* @date 2014-07-08
*
* Describe
*/
#pragma once
#include "SCmnCtrl.h"
namespace SOUI
{
/**
* @class SSliderBar
* @brief 滑块工具条
*
* Describe 滑块工具条
*/
class SOUI_EXP SSliderBar : public SProgress
{
SOUI_CLASS_NAME(SSliderBar, L"sliderbar")
struct RANGE
{
int value1;
int value2;
};
public:
/**
* SSliderBar::SSliderBar
* @brief 构造函数
*
* Describe 构造函数
*/
SSliderBar();
/**
* SSliderBar::~SSliderBar
* @brief 析构函数
*
* Describe 析构函数
*/
~SSliderBar();
enum
{
SC_RAIL,
SC_SELECT,
SC_THUMB,
SC_RAILBACK,
};
public:
/**
* SSliderBar::HitTest
* @brief 测试点
* @param CPoint pt -- 坐标
*
* Describe 测试某个点是否在滚动条上
*/
int HitTest(CPoint pt);
protected:
BOOL m_bDrag; /**< 是否允许拖动 */
CPoint m_ptDrag; /**< 拖动位置 */
int m_nDragValue; /**< 拖动距离 */
int m_uHtPrev; /**< 上次的鼠标位置 */
SAutoRefPtr<ISkinObj> m_pSkinThumb; /**< 皮肤对象 */
BOOL m_bThumbInRail; /**< 滑块包含在轨道中 */
protected:
/**
* SSliderBar::NotifyPos
* @brief 通知
* @param UINT uCode -- 消息码
* @param int nPos -- 坐标
*
* Describe 自定义消息响应函数
*/
LRESULT NotifyPos(UINT uCode, int nPos);
/**
* SSliderBar::GetDesiredSize
* @brief 获取大小
* @param int wid -- 容器宽度
* @param int hei -- 容器高度
* @return 返回CSize
*
* Describe 获取大小
*/
virtual CSize GetDesiredSize(int wid,int hei);
virtual void OnColorize(COLORREF cr);
virtual void OnScaleChanged(int scale);
/**
* SSliderBar::GetPartRect
* @brief
* @param UINT uSBCode
*
* Describe
*/
CRect GetPartRect(UINT uSBCode);
RANGE _GetPartRange(int nLength,int nThumbSize, BOOL bThumbInRail, int nMin,int nMax,int nValue, UINT uSBCode);
/**
* SSliderBar::OnPaint
* @brief 绘制
* @param IRenderTarget * pRT -- 绘画设备
*
* Describe 绘制
*/
void OnPaint(IRenderTarget * pRT);
/**
* SSliderBar::OnLButtonUp
* @brief 左键抬起
* @param UINT nFlags -- 虚拟键标志
* @param CPoint point -- 坐标
*
* Describe 消息响应函数
*/
void OnLButtonUp(UINT nFlags, CPoint point);
/**
* SSliderBar::OnLButtonDown
* @brief 左键按下
* @param UINT nFlags -- 虚拟键标志
* @param CPoint point -- 坐标
*
* Describe 消息响应函数
*/
void OnLButtonDown(UINT nFlags, CPoint point);
/**
* SSliderBar::OnMouseMove
* @brief 鼠标移动
* @param UINT nFlags -- 虚拟键标志
* @param CPoint point -- 坐标
*
* Describe 消息响应函数
*/
void OnMouseMove(UINT nFlags, CPoint point);
/**
* SSliderBar::OnMouseLeave
* @brief 鼠标移动事件
*
* Describe 消息响应函数
*/
void OnMouseLeave();
SOUI_MSG_MAP_BEGIN()
MSG_WM_LBUTTONDOWN(OnLButtonDown)
MSG_WM_LBUTTONUP(OnLButtonUp)
MSG_WM_MOUSEMOVE(OnMouseMove)
MSG_WM_MOUSELEAVE(OnMouseLeave)
MSG_WM_PAINT_EX(OnPaint)
SOUI_MSG_MAP_END()
SOUI_ATTRS_BEGIN()
ATTR_SKIN(L"thumbSkin", m_pSkinThumb, TRUE)
ATTR_BOOL(L"thumbInRail",m_bThumbInRail,TRUE)
SOUI_ATTRS_END()
};
}