資源簡(jiǎn)介
皮膚滾動(dòng)條庫(kù)源代碼(1.2版),使用方便只需要調(diào)用幾個(gè)函數(shù)就能完成控件滾動(dòng)條的美化。以C語(yǔ)言編譯通過(guò),導(dǎo)出了標(biāo)準(zhǔn)API函數(shù),可供其它語(yǔ)言使用只需要將鏈接方式修改為動(dòng)態(tài)鏈接庫(kù)即可以。

代碼片段和文件信息
#include?“internal.h“
#include?“skinsb.h“
#include?
#ifdef?_DEBUG
#include?
#endif
#define?WIN32_LEAN_AND_MEAN
static?TCHAR?g_szPropSB[]?=?TEXT(“PROP_SkinSB“);
const?int?SBMETRICS::cxVArrow?=?16;//GetSystemMetrics(SM_CXVSCROLL);
const?int?SBMETRICS::cyVArrow?=?16;//GetSystemMetrics(SM_CYVSCROLL);
const?int?SBMETRICS::cxHArrow?=?16;//GetSystemMetrics(SM_CXHSCROLL);
const?int?SBMETRICS::cyHArrow?=?16;//GetSystemMetrics(SM_CYHSCROLL);
const?int?SBMETRICS::cxThumb??=?16;//GetSystemMetrics(SM_CXHTHUMB);
const?int?SBMETRICS::cyThumb??=?16;//GetSystemMetrics(SM_CYVTHUMB);
//?Public?interfaces
//----------------------------------------------------------
//?Name?:?SkinSB_Init()
//?Desc?:?Initialize?the?skin?scrollbar?library
//----------------------------------------------------------
BOOL?WINAPI?SkinSB_Init(HWND?hwnd?HBITMAP?hBmp)
{
LPSKINSB?psb;
DWORD????dwstyle;
if(?!IsWindow(hwnd)?)?{
SetLastError(ERROR_INVALID_HANDLE);
return?FALSE;
}
if(?SkinSB_IsValid(hwnd)?)
return?FALSE;
//?Allocates?memory
psb?=?(LPSKINSB)LocalAlloc(LPTR?sizeof(SKINSB));
if(?psb?==?NULL?)
return?FALSE;
ZeroMemory(psb?sizeof(SKINSB));
dwstyle?=?GetWindowLong(hwnd?GWL_style);
psb->Horz.cbSize?=?psb->Vert.cbSize?=?sizeof(SCROLLINFO);
psb->Horz.fMask??=?psb->Vert.fMask??=?SIF_ALL|SIF_DISABLENOSCROLL;
if(?dwstyle?&?WS_HSCROLL?)
GetScrollInfo(hwnd?SB_HORZ?&psb->Horz);
if(?dwstyle?&?WS_VSCROLL?)
GetScrollInfo(hwnd?SB_VERT?&psb->Vert);
//?Is?left?scrollbar?style
if(?GetWindowLong(hwnd?GWL_EXstyle)?&?WS_EX_LEFTSCROLLBAR?)
psb->fLeftScrollBar?=?TRUE;
if(?!hBmp?)?{
SetLastError(ERROR_INVALID_HANDLE);
return?FALSE;
}
psb->hBmp?=?hBmp;
//?Replace?the?window?procedure
psb->hwnd?=?hwnd;
psb->pfnOldProc?=?(WNDPROC)(LONG_PTR)SetWindowLong(hwnd?
GWL_WNDPROC?(LONG)(LONG_PTR)SkinSB_Proc);
psb->fPreventstyleChange?=?FALSE;
psb->fTracking?=?FALSE;
//?Whether?richedit?control
TCHAR?szClassName[255]?=?{?0?};
GetClassName(hwnd?szClassName?sizeof(szClassName));
if(?_strcmpi(szClassName?TEXT(“RichEdit20A“))?==?0?||
_strcmpi(szClassName?TEXT(“RichEdit20W“))?==?0?)?{
psb->fRichEdit?=?TRUE;
}
//?Set?the?window?property?
if(?!SetProp(hwnd?g_szPropSB?(HANDLE)psb)?)
return?FALSE;
//?Redraw?the?window?noclient
Redrawframe(hwnd);
return?TRUE;
}
//---------------------------------------------------------
//?Name?:?SkinSB_Uninit()
//?Desc?:?Finalize?the?skin?scrollbar?library
//---------------------------------------------------------
BOOL?WINAPI?SkinSB_Uninit(HWND?hwnd)
{
LPSKINSB????psb;
SCROLLINFO??vsi;
SCROLLINFO??hsi;
BOOL????????vValid?hValid;
UINT????????vFlags?hFlags;
if(?(psb?=?SkinSB_GetSB(hwnd))?==?NULL?)
return?FALSE;
vsi.cbSize?=?hsi.cbSize?=?sizeof(SCROLLINFO);
vsi.fMask??=?hsi.fMask?=?SIF_ALL?|?SIF_DISABLENOSCROLL;
vValid?=?SkinSB_GetScrollInfo(hwnd?
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????21251??2001-08-28?09:41??SkinSB\lib\detours.h
?????文件?????178870??2001-08-28?09:58??SkinSB\lib\detours.lib
?????文件?????110592??2007-10-13?15:15??SkinSB\lib\detours.pdb
?????文件???????3653??2008-12-24?01:09??SkinSB\lib\skinsb.h
?????文件??????29508??2009-09-23?03:57??SkinSB\lib\skinsb.lib
?????文件?????103524??2009-09-23?14:10??SkinSB\lib\skinsbd.lib
?????文件???????8162??2009-09-23?04:05??SkinSB\skinsb\internal.h
?????文件????????695??2008-06-21?11:09??SkinSB\skinsb\ReadMe.txt
?????文件??????49647??2009-09-23?03:53??SkinSB\skinsb\skinsb.c
?????文件????????275??2009-09-23?13:42??SkinSB\skinsb\skinsb.def
?????文件???????3662??2009-10-02?19:47??SkinSB\skinsb\skinsb.h
????..A..H.?????24064??2009-06-23?20:58??SkinSB\skinsb\skinsb.suo
????..A..H.??????9216??2008-06-25?10:21??SkinSB\skinsb\skinsb.suo.old
?????文件???????3337??2009-09-22?15:30??SkinSB\skinsb\skinsb_2003.vcproj
?????文件???????7359??2009-09-23?14:04??SkinSB\skinsb\skinsb_2005.vcproj
?????文件???????2591??2009-09-23?14:49??SkinSB\skinsb\skinsb_2005.vcproj.LIJUN-PC.Jun.user
?????文件???????4313??2009-02-15?20:59??SkinSB\SkinSBDemo\ReadMe.txt
?????文件??????36920??2009-09-22?19:05??SkinSB\SkinSBDemo\res\scroll.bmp
?????文件??????71116??2009-09-22?19:05??SkinSB\SkinSBDemo\res\SCROLL.psd
?????文件??????21630??2005-08-12?16:37??SkinSB\SkinSBDemo\res\SkinSBDemo.ico
?????文件????????401??2009-02-15?20:59??SkinSB\SkinSBDemo\res\SkinSBDemo.rc2
????..A.SH.??????7680??2009-09-22?19:06??SkinSB\SkinSBDemo\res\Thumbs.db
?????文件????????864??2009-06-23?20:55??SkinSB\SkinSBDemo\resource.h
?????文件??????96472??2009-09-22?18:44??SkinSB\SkinSBDemo\SkinSBDemo.aps
?????文件???????5964??2009-09-23?02:39??SkinSB\SkinSBDemo\SkinSBDemo.cpp
?????文件????????558??2009-02-15?21:11??SkinSB\SkinSBDemo\SkinSBDemo.h
?????文件???????5662??2009-09-22?18:44??SkinSB\SkinSBDemo\SkinSBDemo.rc
?????文件????????884??2009-02-15?20:59??SkinSB\SkinSBDemo\SkinSBDemo.sln
????..A..H.?????15872??2009-06-23?20:56??SkinSB\SkinSBDemo\SkinSBDemo.suo
?????文件???????5685??2009-06-27?16:45??SkinSB\SkinSBDemo\SkinSBDemo.vcproj
............此處省略18個(gè)文件信息
評(píng)論
共有 條評(píng)論