• 大小: 198KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2022-11-21
  • 语言: C/C++
  • 标签: SkinSB  滚动条  

资源简介

皮肤滚动条库源代码(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个文件信息

评论

共有 条评论

相关资源