⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zskin.inc

📁 Powerbasic 对GDI 的操作 很漂亮的代码!
💻 INC
📖 第 1 页 / 共 5 页
字号:
DECLARE FUNCTION SetWindowLong LIB "USER32.DLL" ALIAS "SetWindowLongA" (BYVAL hWnd AS DWORD, BYVAL nIndex AS LONG, BYVAL lNewLong AS LONG) AS LONG
DECLARE FUNCTION ShowWindow LIB "USER32.DLL" ALIAS "ShowWindow" (BYVAL hWnd AS DWORD, BYVAL nCmdShow AS LONG) AS LONG
DECLARE FUNCTION TranslateMessage LIB "USER32.DLL" ALIAS "TranslateMessage" (lpMsg AS tagMSG) AS LONG
DECLARE FUNCTION UpdateWindow LIB "USER32.DLL" ALIAS "UpdateWindow" (BYVAL hWnd AS DWORD) AS LONG

'-----------------------------------------------------------------
' Declared Subs:  2
'-----------------------------------------------------------------
DECLARE SUB InitCommonControls LIB "COMCTL32.DLL" ALIAS "InitCommonControls" ()
DECLARE SUB PostQuitMessage LIB "USER32.DLL" ALIAS "PostQuitMessage" (BYVAL nExitCode AS LONG)

'// Fast line input replacement section
TYPE OVERLAPPED
  Internal AS DWORD
  InternalHigh AS DWORD
  offset AS DWORD
  OffsetHigh AS DWORD
  hEvent AS DWORD
END TYPE

TYPE SECURITY_ATTRIBUTES
  nLength AS DWORD
  lpSecurityDescriptor AS LONG
  bInheritHandle AS LONG
END TYPE

TYPE FILETIME
  dwLowDateTime AS DWORD
  dwHighDateTime AS DWORD
END TYPE

TYPE WIN32_FIND_DATA
  dwFileAttributes AS DWORD
  ftCreationTime AS FILETIME
  ftLastAccessTime AS FILETIME
  ftLastWriteTime AS FILETIME
  nFileSizeHigh AS DWORD
  nFileSizeLow AS DWORD
  dwReserved0 AS DWORD
  dwReserved1 AS DWORD
  cFileName AS ASCIIZ * %MAX_PATH
  cAlternateFileName AS ASCIIZ * 14
END TYPE

%GENERIC_READ                                   = &H80000000&
%GENERIC_WRITE                                  = &H40000000&
%FILE_SHARE_READ                                = &H00000001
%FILE_SHARE_WRITE                               = &H00000002
%FILE_ATTRIBUTE_NORMAL                          = &H00000080
%MAXDWORD                                       = &HFFFFFFFF???
%INVALID_HANDLE_VALUE                           = -1
%FILE_BEGIN                                     = 0
%FILE_FLAG_WRITE_THROUGH                        = &H080000000
%OPEN_ALWAYS                                    = 4
%FILE_TYPE_DISK                                 = &H1
%STD_OUTPUT_HANDLE                              = -11&
%MAX_PATH                                       = 260  ' max. length of full pathname

%PAINT_TILING_MODE          = 0 '// Main form background paint mode
%PAINT_STRETCH_MODE         = 1 '// Main form background paint mode

%ID_CLOSE           = -32768
%ID_RESTORE         = -32767
%ID_MAXIMIZE        = -32766
%ID_MINIMIZE        = -32765
%ID_LED             = -32764
%ID_DOCKIN          = -32763
%ID_DOCKOUT         = -32762
%ID_LISTFNAME       = -32761
%ID_LISTIMAGE       = -32760
%ID_COLORPICKBUTTON = -32759

%IMAGE_EXTRA  = 1

' DO NOT use or alter these properties!
%FORM_TopLeft     = 1  ' Skin top left corner
%FORM_TopMid      = 2  ' Skin stretched top mid
%FORM_TopRight    = 3  ' Skin top right corner
%FORM_SideLeft    = 4  ' Skin stretched left side
%FORM_Center      = 5  ' Skin center
%FORM_SideRight   = 6  ' Skin stretched right side
%FORM_BottomLeft  = 7  ' Skin bottom left corner
%FORM_BottomMid   = 8  ' Skin stretched bottom side
%FORM_BottomRight = 9  ' Skin bottom right corner
%FORM_PaintDC     = 10 ' Internal DC
%FORM_PaintBitmap = 11 ' Memory Bitmap
%BACK_PaintBitmap = 12 ' Memory Bitmap

%EXTEND_EXTRA = %BACK_PaintBitmap ' %FORM_PaintBitmap ' MAXIMUM 40 bytes on 95/98/ME

$Anti = "\"
$ZBUTIMAGE = "ZBUTIMAGE"

%TRACK_HORZ          = -1
%TRACK_VERT          = 0

%BS_PUSHBUTTON       = &H0&
%BS_AUTOCHECKBOX     = &H3&
%BS_BITMAP           = &H80&
%BS_GROUPBOX         = &H7&
%BS_USERBUTTON       = &H8&
    %BS_LEFT         = &H100&
    %BS_RIGHT        = &H200&
    %BS_CENTER       = &H300&
    %BS_TOP          = &H400&
    %BS_BOTTOM       = &H800&
    %BS_VCENTER      = &HC00&
    %BS_MULTILINE    = &H00002000&
%BS_LABEL_LEFT       = %BS_USERBUTTON + %BS_LEFT
%BS_LABEL_RIGHT      = %BS_USERBUTTON + %BS_RIGHT
%BS_LABEL_MULTILINE  = %BS_USERBUTTON + %BS_LEFT + %BS_MULTILINE

%PROP_IMAGE          = 1
%PROP_STYLE          = 2
%PROP_TEXT_COLOR     = 3
%PROP_USE_3D         = 4
%PROP_STATEMAX       = 5

%TRACK_IMAGE         = %PROP_IMAGE
%TRACK_MINVAL        = 2
%TRACK_MAXVAL        = 3
%TRACK_VALUE         = 4
%TRACK_XY            = 5
%TRACK_THUMB_MOVING  = 6
%TRACK_WAS_VALUE     = 7
%TRACK_ARGB          = 9

%COLORPICK_IMAGE     = 1 '// Color picker
%COLORPICK_COLOR     = 2 '// Color picker
%COLORPICK_COMBO     = 3 '// Color picker
'------------------------------------------------------------------------------------------
' ANCHOR section
'------------------------------------------------------------------------------------------
TYPE ANCHORPROPERTY
    hWnd        AS LONG
    anchor      AS LONG
    rc          AS RECT
    centerx     AS LONG
    centery     AS LONG
END TYPE

%ANCHOR_NONE                = 0
%ANCHOR_WIDTH               = 1
%ANCHOR_RIGHT               = 2
%ANCHOR_CENTER_HORZ         = 3
%ANCHOR_HEIGHT              = 4
%ANCHOR_HEIGHT_WIDTH        = 5
%ANCHOR_HEIGHT_RIGHT        = 6
%ANCHOR_BOTTOM              = 7
%ANCHOR_BOTTOM_WIDTH        = 8
%ANCHOR_BOTTOM_RIGHT        = 9
%ANCHOR_CENTER_HORZ_BOTTOM  = 10
%ANCHOR_CENTER_VERT         = 11
%ANCHOR_CENTER_VERT_RIGHT   = 12
%ANCHOR_CENTER              = 13

GLOBAl gProp() AS ANCHORPROPERTY, gColorCaption AS LONG
GLOBAL gZorder() AS LONG

'-----------------------------------------------------------------
' Declared Functions:  11
'-----------------------------------------------------------------
DECLARE FUNCTION CreateFile LIB "KERNEL32.DLL" ALIAS "CreateFileA" (lpFileName AS ASCIIZ, BYVAL dwDesiredAccess AS DWORD, BYVAL dwShareMode AS DWORD, lpSecurityAttributes AS SECURITY_ATTRIBUTES, BYVAL dwCreationDisposition AS DWORD, _
                 BYVAL dwFlagsAndAttributes AS DWORD, BYVAL hTemplateFile AS DWORD) AS DWORD
DECLARE FUNCTION GetFileSize LIB "KERNEL32.DLL" ALIAS "GetFileSize" (BYVAL hFile AS DWORD, lpFileSizeHigh AS LONG) AS LONG
DECLARE FUNCTION GetFileType LIB "KERNEL32.DLL" ALIAS "GetFileType" (BYVAL hFile AS DWORD) AS LONG
DECLARE FUNCTION ReadFile LIB "KERNEL32.DLL" ALIAS "ReadFile" (BYVAL hFile AS DWORD, lpBuffer AS ANY, BYVAL nNumberOfBytesToRead AS DWORD, lpNumberOfBytesRead AS DWORD, lpOverlapped AS OVERLAPPED) AS LONG
DECLARE FUNCTION SetFilePointer LIB "KERNEL32.DLL" ALIAS "SetFilePointer" (BYVAL hFile AS DWORD, BYVAL lDistanceToMove AS LONG, lpDistanceToMoveHigh AS LONG, BYVAL dwMoveMethod AS DWORD) AS LONG
DECLARE FUNCTION WriteConsole LIB "KERNEL32.DLL" ALIAS "WriteConsoleA" (BYVAL hConsoleOutput AS DWORD, lpBuffer AS ASCIIZ, BYVAL nNumberOfCharsToWrite AS LONG, lpNumberOfCharsWritten AS LONG, BYVAL lpReserved AS LONG) AS LONG
DECLARE FUNCTION GetStdHandle LIB "KERNEL32.DLL" ALIAS "GetStdHandle" (BYVAL nStdHandle AS LONG) AS LONG
DECLARE FUNCTION GetShortPathName LIB "KERNEL32.DLL" ALIAS "GetShortPathNameA" (lpszLongPath AS ASCIIZ, lpszShortPath AS ASCIIZ, BYVAL cchBuffer AS LONG) AS LONG

%LB_ADDSTRING          = &H180
%LB_INSERTSTRING       = &H181
%LB_FINDSTRING         = &H18F
%LB_GETTEXT            = &H189
%LB_GETTEXTLEN         = &H18A
%LB_DELETESTRING       = &H182
%LB_RESETCONTENT       = &H184
%LB_SETCURSEL          = &H186
%LB_GETCURSEL          = &H188
%LB_GETCOUNT           = &H18B
%LBS_HASSTRINGS        = &H40&
%LBS_SORT              = &H2&

'------------------------------------------------------------------------------------------
' GDIPLUS section
'------------------------------------------------------------------------------------------
$Dot        = "."
$zLim       = "|"
$GDIPLUSIMG = ".DIB.EMF.GIF.JPG.JPEG.PNG.TIF.TIFF.WMF."
$GDIPLUSEXT = $GDIPLUSIMG + "BMP.ICO."
%UnitPixel  = 2 ' Each unit is one device pixel.

%MatrixOrderPrepend = 0
%MatrixOrderAppend = 1
%CombineModeIntersect = 1

%FontStyleRegular = 0
%TextRenderingHintSystemDefault            = 0 ' Glyph with system default rendering hint
%TextRenderingHintSingleBitPerPixelGridFit = 1 ' Glyph bitmap with hinting
%TextRenderingHintSingleBitPerPixel        = 2 ' Glyph bitmap without hinting
%TextRenderingHintAntiAliasGridFit         = 3 ' Glyph anti-alias bitmap with hinting
%TextRenderingHintAntiAlias                = 4 ' Glyph anti-alias bitmap without hinting
%TextRenderingHintClearTypeGridFit         = 5 ' Glyph CT bitmap with hinting
%TextRenderingDefault                      = %TextRenderingHintClearTypeGridFit

%ZD_TextHorzUp = &H0                  ' Horizontal text orientation
%ZD_TextVertUp = &H1                  ' Vertical text orientation from bottom to top
%ZD_TextVertDn = &H2                  ' Vertical text orientation from top to bottom

%WrapModeTile        = 0
%WrapModeTileFlipX   = 1
%WrapModeTileFlipY   = 2
%WrapModeTileFlipXY  = 3
%WrapModeClamp       = 4

TYPE GdiplusStartupInput
   GdiplusVersion AS LONG             ' Must be 1
   DebugEventCallback AS LONG         ' Ignored on free builds
   SuppressBackgroundThread AS LONG   ' FALSE unless you're prepared to call
                                      ' the hook/unhook functions properly
   SuppressExternalCodecs AS LONG     ' FALSE unless you want GDI+ only to use
                                      ' its internal image codecs.
END TYPE

DECLARE FUNCTION GdiplusStartup LIB "gdiplus.dll" ALIAS "GdiplusStartup" (token&, inputbuf AS GdiplusStartupInput, OPTIONAL BYVAL outputbuf&) AS LONG
DECLARE FUNCTION GdiplusShutdown LIB "gdiplus.dll" ALIAS "GdiplusShutdown" (BYVAL token&) AS LONG
DECLARE FUNCTION GdipLoadImageFromFile LIB "gdiplus.dll" ALIAS "GdipLoadImageFromFile" (zFilName AS ASCIIZ, nImage&) AS LONG
DECLARE FUNCTION GdipGetImageWidth LIB "gdiplus.dll" ALIAS "GdipGetImageWidth" (BYVAL nImage&, nWidth&) AS LONG
DECLARE FUNCTION GdipGetImageHeight LIB "gdiplus.dll" ALIAS "GdipGetImageHeight" (BYVAL nImage&, Height&) AS LONG
DECLARE FUNCTION GdipDisposeImage LIB "gdiplus.dll" ALIAS "GdipDisposeImage" (BYVAL nImage&) AS LONG
DECLARE FUNCTION GdipCreateFromHDC LIB "gdiplus.dll" ALIAS "GdipCreateFromHDC" (BYVAL hdc&, graphics&) AS LONG
DECLARE FUNCTION GdipDrawImageRectRectI LIB "gdiplus.dll" ALIAS "GdipDrawImageRectRectI" (BYVAL graphics&, BYVAL nImage&, BYVAL dstx&, BYVAL dsty&, BYVAL dstwidth&, BYVAL dstheight&, BYVAL srcx&, BYVAL srcy&, BYVAL srcwidth&, BYVAL srcheight&, _
                                                                                          BYVAL srcUnit&, OPTIONAL BYVAL imageAttributes&, OPTIONAL BYVAL pCALLBACK&, OPTIONAL BYVAL callbackData&) AS LONG
DECLARE FUNCTION GdipCreateStringFormat LIB "gdiplus.dll" ALIAS "GdipCreateStringFormat" (BYVAL formatAttributes&, BYVAL language AS INTEGER, StringFormat&) AS LONG
DECLARE FUNCTION GdipDeleteGraphics LIB "gdiplus.dll" ALIAS "GdipDeleteGraphics" (BYVAL graphics&) AS LONG
DECLARE FUNCTION GdipCreateFont LIB "gdiplus.dll" ALIAS "GdipCreateFont" (BYVAL fontFamily&, BYVAL emSize!, BYVAL style&, BYVAL unit&, createdfont&) AS LONG
DECLARE FUNCTION GdipCreateFontFromDC LIB "gdiplus.dll" ALIAS "GdipCreateFontFromDC" (BYVAL hDC&, createdfont&) AS LONG
DECLARE FUNCTION GdipCreateFontFamilyFromName LIB "gdiplus.dll" ALIAS "GdipCreateFontFamilyFromName" (zFontName AS ASCIIZ, BYVAL fontCollection&, fontFamily&) AS LONG
DECLARE FUNCTION GdipDeleteFont LIB "gdiplus.dll" ALIAS "GdipDeleteFont" (BYVAL curFont&) AS LONG
DECLARE FUNCTION GdipMeasureString LIB "gdiplus.dll" ALIAS "GdipMeasureString" (BYVAL graphics&, zString AS ASCIIZ, BYVAL length&, BYVAL thefont&, layoutRect AS RECTF, BYVAL StringFormat&, boundingBox AS RECTF, _
                                                                                codepointsFitted&, linesFilled&) AS LONG
DECLARE FUNCTION GdipDeleteFontFamily LIB "gdiplus.dll" ALIAS "GdipDeleteFontFamily" (BYVAL fontFamily&) AS LONG
DECLARE FUNCTION GdipDeleteBrush LIB "gdiplus.dll" ALIAS "GdipDeleteBrush" (BYVAL brush&) AS LONG
DECLARE FUNCTION GdipResetWorldTransform LIB "gdiplus.dll" ALIAS "GdipResetWorldTransform" (BYVAL graphics&) AS LONG
DECLARE FUNCTION GdipDeleteStringFormat LIB "gdiplus.dll" ALIAS "GdipDeleteStringFormat" (BYVAL StringFormat&) AS LONG
DECLARE FUNCTION GdipDrawString LIB "gdiplus.dll" ALIAS "GdipDrawString" (BYVAL graphics&, zStr AS ASCIIZ, BYVAL length&, BYVAL thefont&, layoutRect AS RECTF, BYVAL StringFormat&, BYVAL brush&) AS LONG
DECLARE FUNCTION GdipCreateSolidFill LIB "gdiplus.dll" ALIAS "GdipCreateSolidFill" (BYVAL argb&, brush&) AS LONG
DECLARE FUNCTION GdipSetTextRenderingHint LIB "gdiplus.dll" ALIAS "GdipSetTextRenderingHint" (BYVAL graphics&, BYVAL mode&) AS LONG
DECLARE FUNCTION GdipRotateWorldTransform LIB "gdiplus.dll" ALIAS "GdipRotateWorldTransform" (BYVAL graphics&, BYVAL angle!, BYVAL order&) AS LONG
DECLARE FUNCTION GdipSetStringFormatFlags LIB "gdiplus.dll" ALIAS "GdipSetStringFormatFlags" (BYVAL StringFormat&, BYVAL flags&) AS LONG

DECLARE FUNCTION GdipSetStringFormatAlign LIB "gdiplus.dll" ALIAS "GdipSetStringFormatAlign" (BYVAL StringFormat&, BYVAL align&) AS LONG
DECLARE FUNCTION GdipSetStringFormatLineAlign LIB "gdiplus.dll" ALIAS "GdipSetStringFormatLineAlign" (BYVAL StringFormat&, BYVAL align&) AS LONG

DECLARE FUNCTION GdipTranslateWorldTransform LIB "gdiplus.dll" ALIAS "GdipTranslateWorldTransform" (BYVAL graphics&, BYVAL dx!, BYVAL dy!, BYVAL order&) AS LONG
DECLARE FUNCTION GdipCreateBitmapFromHICON LIB "gdiplus.dll" ALIAS "GdipCreateBitmapFromHICON" (BYVAL hicon&, nBitmap&) AS LONG
DECLARE FUNCTION GdipCreateBitmapFromHBITMAP LIB "gdiplus.dll" ALIAS "GdipCreateBitmapFromHBITMAP" (BYVAL hbm&, BYVAL hpal&, nBitmap&) AS LONG
DECLARE FUNCTION GdipCreateBitmapFromGraphics LIB "gdiplus.dll" ALIAS "GdipCreateBitmapFromGraphics" (BYVAL nWidth&, BYVAL Height&, BYVAL graphics&, nBitmap&) AS LONG
DECLARE FUNCTION GdipSetInterpolationMode LIB "gdiplus.dll" ALIAS "GdipSetInterpolationMode" (BYVAL graphics&, BYVAL interpolation&) AS LONG
DECLARE FUNCTION GdipDrawLineI LIB "gdiplus.dll" ALIAS "GdipDrawLineI" (BYVAL graphics&, BYVAL pen&, BYVAL x1&, BYVAL y1&, BYVAL x2&, BYVAL y2&) AS LONG
DECLARE FUNCTION GdipDeletePen LIB "gdiplus.dll" ALIAS "GdipDeletePen" (BYVAL pen&) AS LONG
DECLARE FUNCTION GdipCreatePen1 LIB "gdiplus.dll" ALIAS "GdipCreatePen1" (BYVAL Colr&, BYVAL nWidth!, BYVAL unit&, pen&) AS LONG
DECLARE FUNCTION GdipSetClipRectI LIB "gdiplus.dll" ALIAS "GdipSetClipRectI" (BYVAL graphics&, BYVAL x&, BYVAL y&, BYVAL nWidth&, BYVAL Height&, BYVAL CombineMd&) AS LONG
DECLARE FUNCTION GdipResetClip LIB "gdiplus.dll" ALIAS "GdipResetClip" (BYVAL graphics&) AS LONG
DECLARE FUNCTION GdipFillRectangleI LIB "gdiplus.dll" ALIAS "GdipFillRectangleI" (BYVAL graphics&, BYVAL brush&, BYVAL x&, BYVAL y&, BYVAL nWidth&, BYVAL Height&) AS LONG
DECLARE FUNCTION GdipCreateLineBrushI LIB "gdiplus.dll" ALIAS "GdipCreateLineBrushI" (point1 AS POINTAPI, point2 AS POINTAPI, BYVAL color1&, BYVAL color2&, BYVAL WrapMd&, lineGradient&) AS LONG
DECLARE FUNCTION GdipCreatePen2 LIB "gdiplus.dll" ALIAS "GdipCreatePen2" (BYVAL brush&, BYVAL nWidth!, BYVAL unit&, pen&) AS LONG

TYPE OSVERSIONINFO
    dwOSVersionInfoSize AS DWORD
    dwMajorVersion AS DWORD
    dwMinorVersion AS DWORD
    dwBuildNumber AS DWORD
    dwPlatformId AS DWORD
    szCSDVersion AS ASCIIZ * 128  ' Maintenance string for PSS usage
END TYPE

FUNCTION zOsVersion () AS LONG

    DIM os AS OSVERSIONINFO

    os.dwOSVersionInfoSize = SIZEOF(os)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -