VC++中HTControl控件類的CHTSlider控制桿控件類簡(jiǎn)介
本文所述的是HTControl控件中的一個(gè)控制桿控件類文件代碼,此類是完全獨(dú)立的,沒有任何基類。直接由WIN32 API實(shí)現(xiàn)。你可以在SDK,MFC,wxWidget等等方式下使用它??刂浦邪ㄒ粋€(gè)垂直的控制桿控件,使用方式和水平的完全相同。窗體必須動(dòng)態(tài)創(chuàng)建,具體代碼段如下:
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"));
使用方便簡(jiǎn)便,可認(rèn)為是一個(gè)窗口就是一個(gè)C++對(duì)象,要想實(shí)現(xiàn)某功能直接呼叫接口即可,沒有附加的代碼。下面是控制桿類的主文件代碼:
/**************************************************************************** | 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(); /**************************************************************************** | 函數(shù)功能:創(chuàng)建控制桿控件 | | 輸入?yún)?shù): | | x: 窗體位置x坐標(biāo)(相對(duì)于父窗體) | | y: 窗體位置y坐標(biāo)(相對(duì)于父窗體) | | iWidth: 窗體寬 | | iHeight: 窗體高 | | hParent: 父窗體句柄 | | iSliderId: 窗體ID | | iThumbTop: 滑塊頂端坐標(biāo) | | iThumbWidth:滑塊寬 | | iThumbHeight: 滑塊高 | | pRectChannel: channel矩形(channel占據(jù)的矩形) NULL表示不繪制channel | | 輸出參數(shù):無(wú) | | 返回值: 成功返回窗體句柄 失敗返回NULL | | 說 明: | ****************************************************************************/ HWND Create(int x, int y, int iWidth, int iHeight, HWND hParent, int iSliderId, int iThumbTop, int iThumbWidth, int iThumbHeight, RECT* pRectChannel = NULL); /**************************************************************************** | 函數(shù)功能:改變窗口位置大小 | | 輸入?yún)?shù): | | x: 窗體位置x坐標(biāo)(相對(duì)于父窗體) | | y: 窗體位置y坐標(biāo)(相對(duì)于父窗體) | | iWidth: 窗體寬 | | bRepaint:是否重繪窗體 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明:不支持高度的變化 | ****************************************************************************/ void MoveWindow(int x, int y, int iWidth, BOOL bRepaint = TRUE); /**************************************************************************** | 函數(shù)功能:設(shè)置提示窗口類指針 | | 輸入?yún)?shù): | | pclTip: 提示窗口類指針 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void SetToolTip(CHTTip* pclTip); /**************************************************************************** | 函數(shù)功能:獲取窗口的句柄 | | 輸入?yún)?shù):無(wú) | | 輸出參數(shù):無(wú) | | 返回值: 窗體句柄 | | 說 明: | ****************************************************************************/ HWND GetHandle(); /**************************************************************************** | 函數(shù)功能:獲取父窗口的句柄 | | 輸入?yún)?shù):無(wú) | | 輸出參數(shù):無(wú) | | 返回值: 窗體句柄 | | 說 明: | ****************************************************************************/ HWND GetParent(); /**************************************************************************** | 函數(shù)功能:使窗口無(wú)效 | | 輸入?yún)?shù):無(wú) | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void Disable(); /**************************************************************************** | 函數(shù)功能:使窗口有效 | | 輸入?yún)?shù):無(wú) | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void Enable(); /**************************************************************************** | 函數(shù)功能:設(shè)置窗體背景位圖 | | 輸入?yún)?shù): | | hBitmap:位圖 | | iBgLeftLen: 圖片左側(cè)不可拉伸部分長(zhǎng)度 | | iBgRightLen: 圖片右側(cè)不可拉伸部分長(zhǎng)度 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void SetBgBitmap(HBITMAP hBitmap, int iBgLeftLen = 0, int iBgRightLen = 0); /**************************************************************************** | 函數(shù)功能:設(shè)置Channel位圖 | | 輸入?yún)?shù): | | hBitmap:位圖 | | iChannelLeftLen: 圖片左側(cè)不可拉伸部分長(zhǎng)度 | | iChannelRightLen: 圖片右側(cè)不可拉伸部分長(zhǎng)度 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void SetChannelBitmap(HBITMAP hBitmap, int iChannelLeftLen = 0, int iChannelRightLen = 0); /**************************************************************************** | 函數(shù)功能:設(shè)置滑塊位圖 | | 輸入?yún)?shù): | | hBitmap:位圖 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void SetThumbBitmap(HBITMAP hBitmap); /**************************************************************************** | 函數(shù)功能:設(shè)置鼠標(biāo)在滑塊上的位圖 | | 輸入?yún)?shù): | | hBitmap:位圖 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void SetMouseOnThumbBitmap(HBITMAP hBitmap); /**************************************************************************** | 函數(shù)功能:設(shè)置邏輯范圍,把邏輯值恢復(fù)到0, | | 輸入?yún)?shù): | | iRange :邏輯值的最大值 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明:參數(shù)如果為0,此函數(shù)無(wú)作用 | ****************************************************************************/ void SetRange(int iRange); /**************************************************************************** | 函數(shù)功能:獲取邏輯范圍 | | 輸入?yún)?shù):無(wú) | | 輸出參數(shù):無(wú) | | 返回值: 范圍 | | 說 明: | ****************************************************************************/ int GetRange(); /**************************************************************************** | 函數(shù)功能:設(shè)置當(dāng)前邏輯值 | | 輸入?yún)?shù): | | iValue:要設(shè)置的邏輯值 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void SetValue(int iValue); /**************************************************************************** | 函數(shù)功能:獲取當(dāng)前的邏輯值 | | 輸入?yún)?shù):無(wú) | | 輸出參數(shù):無(wú) | | 返回值: 當(dāng)前邏輯值 | | 說 明: | ****************************************************************************/ int GetValue(); /**************************************************************************** | 函數(shù)功能:獲取鼠標(biāo)所在位置的邏輯值 | | 輸入?yún)?shù):無(wú) | | 輸出參數(shù):無(wú) | | 返回值: 邏輯值 | | 說 明: | ****************************************************************************/ int GetTipValue(); /**************************************************************************** | 函數(shù)功能:設(shè)置按下方向鍵或滑輪滾動(dòng)一次時(shí)的邏輯值變化大小 | | 輸入?yún)?shù): | | iLineSize:邏輯值變化大小 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void SetLineSize(int iLineSize); /**************************************************************************** | 函數(shù)功能:獲取按下方向鍵或滑輪滾動(dòng)一次時(shí)的邏輯值變化大小 | | 輸入?yún)?shù): | | 輸出參數(shù):無(wú) | | 返回值: 邏輯值變化大小 | | 說 明: | ****************************************************************************/ int GetLineSize(); /**************************************************************************** | 函數(shù)功能:設(shè)置窗體的不透明度 | | 輸入?yún)?shù): | | iTransparency: 不透明度的百分比 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明: | ****************************************************************************/ void SetTransparency(int iTransparency); /**************************************************************************** | 函數(shù)功能:設(shè)置父窗體背景內(nèi)存畫布 | | 輸入?yún)?shù): | | hParentBgMemDC: 父窗體背景內(nèi)存畫布 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明:當(dāng)父窗體背景在變化并且此窗體本身也有透明度時(shí)(包括窗體使用的位圖 | | 具有透明度或者窗體沒有背景位圖),需要調(diào)用此接口 | ****************************************************************************/ void SetParentBgMemDC(HDC hParentBgMemDC, int x = 0, int y = 0); /**************************************************************************** | 函數(shù)功能:設(shè)置父窗體使用的背景位圖 | | 輸入?yún)?shù): | | hParentBgBitmap: 父窗體使用的背景位圖 | | x, y 位圖繪畫起始點(diǎn)坐標(biāo) | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明:當(dāng)父窗體背景使用靜態(tài)位圖并且此窗體本身也有透明度時(shí)(包括窗體使用 | | 的位圖具有透明度或者窗體沒有背景位圖),需要調(diào)用此接口 | ****************************************************************************/ void SetParentBgBitmap(HBITMAP hParentBgBitmap, int x = 0, int y = 0); /**************************************************************************** | 函數(shù)功能:設(shè)置父窗體背景顏色 | | 輸入?yún)?shù): | | CRParentBg: 父窗體背景顏色 | | 輸出參數(shù):無(wú) | | 返回值: 無(wú) | | 說 明:當(dāng)父窗體背景使用固定顏色并且此窗體本身也有透明度時(shí)(包括窗體使用 | | 的位圖具有透明度或者窗體沒有背景位圖),需要調(diào)用此接口 | ****************************************************************************/ void SetParentBgColor(COLORREF CRParentBg = RGB(236, 233, 216)); private: CMySlider* m_pclSlider; }; #endif //!__CHTSLIDER_H__
除經(jīng)之外,CHTSlider控制桿類還具備靈活的界面表現(xiàn)、窗體任意透明度改變等,比如使用下面接口即可實(shí)現(xiàn)透明度的改變:
void SetTransparency(int iTransparency);
希望本文所述代碼能對(duì)大家的VC++項(xiàng)目開發(fā)起到一定的幫助作用。
上一篇:CISBitmap派生的VC++位圖透明類實(shí)例
欄 目:C語(yǔ)言
下一篇:C++基于Directx MMX實(shí)現(xiàn)的圖像灰度轉(zhuǎn)換代碼
本文標(biāo)題:VC++中HTControl控件類的CHTSlider控制桿控件類簡(jiǎn)介
本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/3518.html
您可能感興趣的文章
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)數(shù)怎么表達(dá)
- 04-02c語(yǔ)言沒有round函數(shù) round c語(yǔ)言
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎么打出三角函數(shù)的值
- 01-10深入理解C++中常見的關(guān)鍵字含義
- 01-10深入Main函數(shù)中的參數(shù)argc,argv的使用詳解
- 01-10APUE筆記之:進(jìn)程環(huán)境詳解
- 01-10c++中inline的用法分析
- 01-10如何尋找數(shù)組中的第二大數(shù)
- 01-10C++大數(shù)模板(推薦)


閱讀排行
- 1C語(yǔ)言 while語(yǔ)句的用法詳解
- 2java 實(shí)現(xiàn)簡(jiǎn)單圣誕樹的示例代碼(圣誕
- 3利用C語(yǔ)言實(shí)現(xiàn)“百馬百擔(dān)”問題方法
- 4C語(yǔ)言中計(jì)算正弦的相關(guān)函數(shù)總結(jié)
- 5c語(yǔ)言計(jì)算三角形面積代碼
- 6什么是 WSH(腳本宿主)的詳細(xì)解釋
- 7C++ 中隨機(jī)函數(shù)random函數(shù)的使用方法
- 8正則表達(dá)式匹配各種特殊字符
- 9C語(yǔ)言十進(jìn)制轉(zhuǎn)二進(jìn)制代碼實(shí)例
- 10C語(yǔ)言查找數(shù)組里數(shù)字重復(fù)次數(shù)的方法
本欄相關(guān)
- 04-02c語(yǔ)言函數(shù)調(diào)用后清空內(nèi)存 c語(yǔ)言調(diào)用
- 04-02func函數(shù)+在C語(yǔ)言 func函數(shù)在c語(yǔ)言中
- 04-02c語(yǔ)言的正則匹配函數(shù) c語(yǔ)言正則表達(dá)
- 04-02c語(yǔ)言用函數(shù)寫分段 用c語(yǔ)言表示分段
- 04-02c語(yǔ)言中對(duì)數(shù)函數(shù)的表達(dá)式 c語(yǔ)言中對(duì)
- 04-02c語(yǔ)言編寫函數(shù)冒泡排序 c語(yǔ)言冒泡排
- 04-02c語(yǔ)言沒有round函數(shù) round c語(yǔ)言
- 04-02c語(yǔ)言分段函數(shù)怎么求 用c語(yǔ)言求分段
- 04-02C語(yǔ)言中怎么打出三角函數(shù) c語(yǔ)言中怎
- 04-02c語(yǔ)言調(diào)用函數(shù)求fibo C語(yǔ)言調(diào)用函數(shù)求
隨機(jī)閱讀
- 01-10使用C語(yǔ)言求解撲克牌的順子及n個(gè)骰子
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05織夢(mèng)dedecms什么時(shí)候用欄目交叉功能?
- 01-10C#中split用法實(shí)例總結(jié)
- 01-11ajax實(shí)現(xiàn)頁(yè)面的局部加載
- 01-10delphi制作wav文件的方法
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05dedecms(織夢(mèng))副欄目數(shù)量限制代碼修改
- 04-02jquery與jsp,用jquery
- 08-05DEDE織夢(mèng)data目錄下的sessions文件夾有什