📄 scrollbar.h
字号:
//--------------------------------------------------
// Desc: ScrollBar
// Date: 2006.11.27 /update
// Author: artsylee
//
// Copyright (C) 2006 artsylee
//
//--------------------------------------------------
#ifndef _SCROLLBAR_
#define _SCROLLBAR_
#include "Window.h"
#include "Slider.h"
#include "Button.h"
#define SCROLLBAR_MINTHUMBSIZE 8
#define SCROLLBAR_ARROWCLICK_DELAY 330
#define SCROLLBAR_ARROWCLICK_REPEAT 50
// ScrollBar不使用RGN
// 重复加载的问题
class ASE_DLL GScrollBar : public CWindow
{
public:
GScrollBar(CWindow* pParent = NULL);
virtual ~GScrollBar();
virtual bool LoadFromIni(char* pfilename, char* pIndex);
virtual DWORD ProcessEvent();
virtual void Render();
virtual void OffSet(int x, int y);
virtual void Enable();
virtual void Disable();
virtual void Show(bool c = true);
void SetTrackRange(int nStart, int nEnd);
int GetTrackPos() { return m_nPosition; }
void SetTrackPos(int nPosition);
int GetPageSize() { return m_nPageSize; }
void SetPageSize(int nPageSize);
void Scroll(int nDelta);
void ShowItem(int nIndex);
void SetSize(int width, int height);
int GetMinWidth() { return m_rcMin[BTN_NORMAL].Width(); }
int GetMinHeight() { return m_rcMin[BTN_NORMAL].Height();}
protected:
void AdjustPosition();
virtual void UpdateRect();
virtual void UpdateBtnRect();
protected:
enum ARROWSTATE
{
CLEAR,
CLICKED_MIN,
CLICKED_MAX,
HELD_MIN,
HELD_MAX,
};
SLIDER_TYPE m_SliderType;
bool m_bShowSlider;
// value
int m_nPosition;
int m_nPageSize;
int m_nStart;
int m_nEnd;
// min button
GRect m_rcMin[BTN_STATENUM];
BTN_STATE m_MinState;
GPoint m_ptMin;
DWORD m_hBtnMin;
// max button
GRect m_rcMax[BTN_STATENUM];
BTN_STATE m_MaxState;
GPoint m_ptMax;
DWORD m_hBtnMax;
// slider button
bool m_bPressed;
GRect m_rcButton;
GRect m_DstButton;
DWORD m_hBtnSlider;
// Delay & Repeat
POINT m_LastMouse;
ARROWSTATE m_Arrow;
DWORD m_dArrowTS;
// Other
int m_ButtonOffset;
};
class ASE_DLL CoolScroll : public GScrollBar
{
public:
CoolScroll(CWindow* pParent = NULL);
virtual bool LoadFromIni(char* pfilename, char* pIndex);
virtual DWORD ProcessEvent();
virtual void Render();
private:
virtual void UpdateRect();
virtual void UpdateBtnRect();
};
#endif // _SCROLLBAR_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -