VC++中HTControl控件类的CHTSlider控制杆控件类简介
本文所述的是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 //#endif class 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++项目开发起到一定的帮助作用。
栏 目:C语言
下一篇:C++基于Directx MMX实现的图像灰度转换代码
本文标题:VC++中HTControl控件类的CHTSlider控制杆控件类简介
本文地址:https://www.xiuzhanwang.com/a1/Cyuyan/3518.html
您可能感兴趣的文章
- 04-02func函数+在C语言 func函数在c语言中
- 04-02c语言中对数函数的表达式 c语言中对数怎么表达
- 04-02c语言没有round函数 round c语言
- 04-02C语言中怎么打出三角函数 c语言中怎么打出三角函数的值
- 01-10深入理解C++中常见的关键字含义
- 01-10深入Main函数中的参数argc,argv的使用详解
- 01-10APUE笔记之:进程环境详解
- 01-10c++中inline的用法分析
- 01-10如何寻找数组中的第二大数
- 01-10C++大数模板(推荐)
阅读排行
本栏相关
- 04-02c语言函数调用后清空内存 c语言调用
- 04-02func函数+在C语言 func函数在c语言中
- 04-02c语言的正则匹配函数 c语言正则表达
- 04-02c语言用函数写分段 用c语言表示分段
- 04-02c语言中对数函数的表达式 c语言中对
- 04-02c语言编写函数冒泡排序 c语言冒泡排
- 04-02c语言没有round函数 round c语言
- 04-02c语言分段函数怎么求 用c语言求分段
- 04-02C语言中怎么打出三角函数 c语言中怎
- 04-02c语言调用函数求fibo C语言调用函数求
随机阅读
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 01-10SublimeText编译C开发环境设置
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10C#中split用法实例总结
- 01-11ajax实现页面的局部加载
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 04-02jquery与jsp,用jquery
- 08-05DEDE织梦data目录下的sessions文件夹有什