资源简介
皮肤滚动条库源代码(1.2版),使用方便只需要调用几个函数就能完成控件滚动条的美化。以C语言编译通过,导出了标准API函数,可供其它语言使用只需要将链接方式修改为动态链接库即可以。
代码片段和文件信息
#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
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 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个文件信息
评论
共有 条评论