首页 > 编程 > C++ > 正文

VC++中HTControl控件类的CHTSlider控制杆控件类简介

2020-01-26 15:25:18
字体:
来源:转载
供稿:网友

本文所述的是HTControl控件中的一个控制杆控件类文件代码,此类是完全独立的,没有任何基类。直接由WIN32 API实现。你可以在SDK,MFC,wxWidget等等方式下使用它。控制中包括一个垂直的控制杆控件,使用方式和水平的完全相同。窗体必须动态创建,具体代码段如下:

m_HTSliderR.Create(130, 500, 400, 14, m_hWnd, iChildId++, 0, 9, 14);m_HTSliderR.SetBgPic(_T(".//pic//SliderBg.png"), NULL, 5, 5);m_HTSliderR.SetThumbPic(_T(".//pic//SliderThumbN.png"));m_HTSliderR.SetMouseOnThumbPic(_T(".//pic//SliderThumbH.png"));

使用方便简便,可认为是一个窗口就是一个C++对象,要想实现某功能直接呼叫接口即可,没有附加的代码。下面是控制杆类的主文件代码:

/****************************************************************************| Copyright (c) 2012,                            |****************************************************************************/#if !defined(__CHTSLIDER_H__)#define __CHTSLIDER_H__#include "CHTTip.h"class CMySlider;//#ifdef HTCONTROLAPI//class __declspec(dllexport) CHTSlider//#else//class __declspec(dllimport) CHTSlider//#endifclass AFX_CLASS_EXPORT CHTSlider{public: CHTSlider(); ~CHTSlider();/****************************************************************************| 函数功能:创建控制杆控件                         || 输入参数:                                || x: 窗体位置x坐标(相对于父窗体)                      || y: 窗体位置y坐标(相对于父窗体)                      || iWidth: 窗体宽                             || iHeight: 窗体高                             || hParent: 父窗体句柄                           || iSliderId: 窗体ID                            || iThumbTop: 滑块顶端坐标                          || iThumbWidth:滑块宽                            || iThumbHeight: 滑块高                           || pRectChannel: channel矩形(channel占据的矩形) NULL表示不绘制channel    || 输出参数:无                               || 返回值: 成功返回窗体句柄 失败返回NULL                 || 说  明:                                |****************************************************************************/HWND Create(int x,  int y, int iWidth,  int iHeight,  HWND hParent,  int iSliderId,  int iThumbTop, int iThumbWidth, int iThumbHeight, RECT* pRectChannel = NULL);/****************************************************************************| 函数功能:改变窗口位置大小                        || 输入参数:                                || x: 窗体位置x坐标(相对于父窗体)                      || y: 窗体位置y坐标(相对于父窗体)                      || iWidth: 窗体宽                             || bRepaint:是否重绘窗体                          || 输出参数:无                               || 返回值: 无                               || 说  明:不支持高度的变化                        |****************************************************************************/ void MoveWindow(int x, int y, int iWidth, BOOL bRepaint = TRUE);/****************************************************************************| 函数功能:设置提示窗口类指针                       || 输入参数:                                || pclTip: 提示窗口类指针                          || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/ void SetToolTip(CHTTip* pclTip);/****************************************************************************| 函数功能:获取窗口的句柄                         || 输入参数:无                               || 输出参数:无                               || 返回值: 窗体句柄                            || 说  明:                                |****************************************************************************/ HWND GetHandle();/****************************************************************************| 函数功能:获取父窗口的句柄                        || 输入参数:无                               || 输出参数:无                               || 返回值: 窗体句柄                            || 说  明:                                |****************************************************************************/ HWND GetParent();/****************************************************************************| 函数功能:使窗口无效                           || 输入参数:无                               || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void Disable();/****************************************************************************| 函数功能:使窗口有效                           || 输入参数:无                               || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void Enable();/****************************************************************************| 函数功能:设置窗体背景位图                        || 输入参数:                                || hBitmap:位图                               || iBgLeftLen: 图片左侧不可拉伸部分长度                   || iBgRightLen: 图片右侧不可拉伸部分长度                   || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void SetBgBitmap(HBITMAP hBitmap, int iBgLeftLen = 0, int iBgRightLen = 0);/****************************************************************************| 函数功能:设置Channel位图                         || 输入参数:                                || hBitmap:位图                               || iChannelLeftLen: 图片左侧不可拉伸部分长度                 || iChannelRightLen: 图片右侧不可拉伸部分长度                || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void SetChannelBitmap(HBITMAP hBitmap, int iChannelLeftLen = 0, int iChannelRightLen = 0);/****************************************************************************| 函数功能:设置滑块位图                          || 输入参数:                                || hBitmap:位图                               || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void SetThumbBitmap(HBITMAP hBitmap);/****************************************************************************| 函数功能:设置鼠标在滑块上的位图                     || 输入参数:                                || hBitmap:位图                               || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void SetMouseOnThumbBitmap(HBITMAP hBitmap);/****************************************************************************| 函数功能:设置逻辑范围,把逻辑值恢复到0,                 || 输入参数:                                || iRange :逻辑值的最大值                          || 输出参数:无                               || 返回值: 无                               || 说  明:参数如果为0,此函数无作用                    |****************************************************************************/void SetRange(int iRange);/****************************************************************************| 函数功能:获取逻辑范围                          || 输入参数:无                               || 输出参数:无                               || 返回值: 范围                              || 说  明:                                |****************************************************************************/int GetRange();/****************************************************************************| 函数功能:设置当前逻辑值                         || 输入参数:                                || iValue:要设置的逻辑值                           || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void SetValue(int iValue);/****************************************************************************| 函数功能:获取当前的逻辑值                        || 输入参数:无                               || 输出参数:无                               || 返回值: 当前逻辑值                           || 说  明:                                |****************************************************************************/int GetValue();/****************************************************************************| 函数功能:获取鼠标所在位置的逻辑值                    || 输入参数:无                               || 输出参数:无                               || 返回值: 逻辑值                             || 说  明:                                |****************************************************************************/int GetTipValue();/****************************************************************************| 函数功能:设置按下方向键或滑轮滚动一次时的逻辑值变化大小         || 输入参数:                                || iLineSize:逻辑值变化大小                         || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void SetLineSize(int iLineSize);/****************************************************************************| 函数功能:获取按下方向键或滑轮滚动一次时的逻辑值变化大小         || 输入参数:                                || 输出参数:无                               || 返回值: 逻辑值变化大小                         || 说  明:                                |****************************************************************************/int GetLineSize();/****************************************************************************| 函数功能:设置窗体的不透明度                       || 输入参数:                                || iTransparency: 不透明度的百分比                     || 输出参数:无                               || 返回值: 无                               || 说  明:                                |****************************************************************************/void SetTransparency(int iTransparency);/****************************************************************************| 函数功能:设置父窗体背景内存画布                     || 输入参数:                                || hParentBgMemDC: 父窗体背景内存画布                    || 输出参数:无                               || 返回值: 无                               || 说  明:当父窗体背景在变化并且此窗体本身也有透明度时(包括窗体使用的位图 ||      具有透明度或者窗体没有背景位图),需要调用此接口         |****************************************************************************/void SetParentBgMemDC(HDC hParentBgMemDC, int x = 0, int y = 0);/****************************************************************************| 函数功能:设置父窗体使用的背景位图                    || 输入参数:                                || hParentBgBitmap: 父窗体使用的背景位图                  || x, y 位图绘画起始点坐标                          || 输出参数:无                               || 返回值: 无                               || 说  明:当父窗体背景使用静态位图并且此窗体本身也有透明度时(包括窗体使用 ||      的位图具有透明度或者窗体没有背景位图),需要调用此接口      |****************************************************************************/void SetParentBgBitmap(HBITMAP hParentBgBitmap, int x = 0, int y = 0);/****************************************************************************| 函数功能:设置父窗体背景颜色                       || 输入参数:                                || CRParentBg: 父窗体背景颜色                        || 输出参数:无                               || 返回值: 无                               || 说  明:当父窗体背景使用固定颜色并且此窗体本身也有透明度时(包括窗体使用 ||      的位图具有透明度或者窗体没有背景位图),需要调用此接口      |****************************************************************************/void SetParentBgColor(COLORREF CRParentBg = RGB(236, 233, 216));private: CMySlider* m_pclSlider;};#endif //!__CHTSLIDER_H__

除经之外,CHTSlider控制杆类还具备灵活的界面表现、窗体任意透明度改变等,比如使用下面接口即可实现透明度的改变:

void SetTransparency(int iTransparency);

希望本文所述代码能对大家的VC++项目开发起到一定的帮助作用。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表