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

📄 dxuxtheme.pas

📁 胜天进销存源码,国产优秀的进销存
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  TGetThemeMargins = function(hTheme: TdxTheme; DC: HDC; iPartId, iStateId, iPropId: Integer;
    prc: PRect; out Margins: TdxMargins): HRESULT; stdcall;
  TGetThemeMetric = function(hTheme: TdxTheme; DC: HDC; iPartId, iStateId, iPropId: Integer;
    out iVal: Integer): HRESULT; stdcall;
  TGetThemePartSize = function(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
    prc: PRect; eSize: TdxThemeSize; psz: PSize): HRESULT; stdcall;
  TGetThemePosition = function(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
    out Point: TPoint): HRESULT; stdcall;
  TGetThemePropertyOrigin = function(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
    out Origin: TdxPropertyOrigin): HRESULT; stdcall;
  TGetThemeRect = function(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
    out Rect: TRect): HRESULT; stdcall;
  TGetThemeString = function(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
    pszBuff: PWideChar; cchMaxBuffChars: Integer): HRESULT; stdcall;
  TGetThemeSysBool = function(hTheme: TdxTheme; iBoolId: Integer): BOOL; stdcall;
  TGetThemeSysColor = function(hTheme: TdxTheme; iColorId: Integer): COLORREF; stdcall;
  TGetThemeSysColorBrush = function(hTheme: TdxTheme; iColorId: Integer): HBRUSH; stdcall;
  TGetThemeSysFont = function(hTheme: TdxTheme; iFontId: Integer; out lf: LOGFONTW): HRESULT; stdcall;
  TGetThemeSysInt = function(hTheme: TdxTheme; iIntId: Integer; var iValue: Integer): HRESULT; stdcall;
  TGetThemeSysSize = function(hTheme: TdxTheme; iSizeId: Integer): Integer; stdcall;
  TGetThemeSysString = function(hTheme: TdxTheme; iStringId: Integer; pszStringBuff: PWideChar;
    cchMaxStringChars: Integer): HRESULT; stdcall;
  TGetThemeTextExtent = function(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
    pszTextL: PWideChar; iCharCount: Integer; dwTextFlags: DWORD;
    pBoundingRect: PRect; out ExtentRect: TRect): HRESULT; stdcall;
  TGetThemeTextMetrics = function(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
    out tm: TEXTMETRIC): HRESULT; stdcall;
  TGetWindowTheme = function(hWnd: HWND): TdxTheme;stdcall;
  THitTestThemeBackground = function(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
    dwOptions: DWORD; pRect : PRect; hRgn: HRGN; ptTest: TPoint;
    out wHitTestCode: WORD): HRESULT; stdcall;
  TIsAppThemed = function: BOOL; stdcall;
  TIsThemeActive = function: BOOL; stdcall;
  TIsThemePartDefined = function(hTheme: TdxTheme; iPartId, iStateId: Integer): BOOL; stdcall;
  TIsThemeBackgroundPartiallyTransparent = function(hTheme: TdxTheme;
    iPartId, iStateId: Integer): BOOL; stdcall;
  TIsThemeDialogTextureEnabled = function(hWnd: HWND): BOOL; stdcall;
  TOpenThemeData = function(hWnd: HWND; pszClassList: PWideChar): TdxTheme; stdcall;
  TSetThemeAppProperties = procedure(dwFlags: DWORD); stdcall;
  TSetWindowTheme = function(hWnd: HWND; pszSubAppName, pszSubIdList: PWideChar): HRESULT; stdcall;
  //vista extention
  TBufferedPaintInit = function: HRESULT; stdcall;
  TBufferedPaintUnInit = function: HRESULT; stdcall;
  TBeginBufferedPaint = function(hdcTarget: HDC; prcTarget: PRect;
    dwFormat: DWORD; pPaintParams: PdxBPPaintParams; var dc: HDC): TdxPaintBuffer; stdcall;
  TEndBufferedPaint = function(hBufferedPaint: TdxPaintBuffer; fUpdateTarget: BOOL): HRESULT; stdcall;
  TBufferedPaintSetAlpha = function(hBufferedPaint: TdxPaintBuffer; prc: PRect; alpha: Byte): HRESULT; stdcall;

  TThemeLibraryMethodPointersKeeper = record
    FCloseThemeData: TCloseThemeData;
    FDrawThemeBackground: TDrawThemeBackground;
    FDrawThemeEdge: TDrawThemeEdge;
    FDrawThemeIcon: TDrawThemeIcon;
    FDrawThemeParentBackground: TDrawThemeParentBackground;
    FDrawThemeText: TDrawThemeText;
    FDrawThemeTextEx: TDrawThemeTextEx;
    FEnableThemeDialogTexture: TEnableThemeDialogTexture;
    FGetCurrentThemeName: TGetCurrentThemeName;
    FGetThemeAppProperties: TGetThemeAppProperties;
    FGetThemeBackgroundContentRect: TGetThemeBackgroundContentRect;
    FGetThemeBackgroundRegion: TGetThemeBackgroundRegion;
    FGetThemeBackgroundExtent: TGetThemeBackgroundExtent;
    FGetThemeBool: TGetThemeBool;
    FGetThemeColor: TGetThemeColor;
    FGetThemeDocumentationProperty: TGetThemeDocumentationProperty;
    FGetThemeEnumValue: TGetThemeEnumValue;
    FGetThemeFilename: TGetThemeFilename;
    FGetThemeFont: TGetThemeFont;
    FGetThemeInt: TGetThemeInt;
    FGetThemeIntList: TGetThemeIntList;
    FGetThemeMargins: TGetThemeMargins;
    FGetThemeMetric: TGetThemeMetric;
    FGetThemePartSize: TGetThemePartSize;
    FGetThemePosition: TGetThemePosition;
    FGetThemePropertyOrigin: TGetThemePropertyOrigin;
    FGetThemeRect: TGetThemeRect;
    FGetThemeString: TGetThemeString;
    FGetThemeSysBool: TGetThemeSysBool;
    FGetThemeSysColor: TGetThemeSysColor;
    FGetThemeSysColorBrush: TGetThemeSysColorBrush;
    FGetThemeSysFont: TGetThemeSysFont;
    FGetThemeSysInt: TGetThemeSysInt;
    FGetThemeSysSize: TGetThemeSysSize;
    FGetThemeSysString: TGetThemeSysString;
    FGetThemeTextExtent: TGetThemeTextExtent;
    FGetThemeTextMetrics: TGetThemeTextMetrics;
    FGetWindowTheme: TGetWindowTheme;
    FHitTestThemeBackground: THitTestThemeBackground;
    FIsAppThemed: TIsAppThemed;
    FIsThemeActive: TIsThemeActive;
    FIsThemePartDefined: TIsThemePartDefined;
    FIsThemeBackgroundPartiallyTransparent: TIsThemeBackgroundPartiallyTransparent;
    FIsThemeDialogTextureEnabled: TIsThemeDialogTextureEnabled;
    FOpenThemeData: TOpenThemeData;
    FSetThemeAppProperties: TSetThemeAppProperties;
    FSetWindowTheme: TSetWindowTheme;
    //vista extention
    FBufferedPaintInit: TBufferedPaintInit;
    FBufferedPaintUnInit: TBufferedPaintUnInit;
    FBeginBufferedPaint: TBeginBufferedPaint;
    FEndBufferedPaint: TEndBufferedPaint;
    FBufferedPaintSetAlpha: TBufferedPaintSetAlpha;
  end;

var
  FIsWindowsXPOrLater: Boolean;
  FThemeLibrary: HMODULE = 0;
  FThemeLibraryMethodPointersKeeper: TThemeLibraryMethodPointersKeeper;

function OpenThemeData(hWnd: HWND; pszClassList: PWideChar): TdxTheme;
begin
  Result := FThemeLibraryMethodPointersKeeper.FOpenThemeData(hWnd, pszClassList);
end;

function CloseThemeData(hTheme: TdxTheme): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FCloseThemeData(hTheme);
end;

function DrawThemeBackground(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  pRect: PRect; pClipRect: PRect = nil
): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FDrawThemeBackground(hTheme, DC,
    iPartId, iStateId, pRect, pClipRect);
end;
function DrawThemeBackground(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  const pRect: TRect; pClipRect: PRect = nil): HRESULT;
begin
  Result := DrawThemeBackground(hTheme, DC, iPartId, iStateId, @pRect, pClipRect);
end;

function DrawThemeBackground(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  const pRect: TRect; const pClipRect: TRect): HRESULT;
begin
  Result := DrawThemeBackground(hTheme, DC, iPartId, iStateId, @pRect, @pClipRect);
end;

function DrawThemeText(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  pszText: PWideChar;
  iCharCount: Integer; dwTextFlags, dwTextFlags2: DWORD;
  pRect: PRect): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FDrawThemeText(hTheme, DC, iPartId, iStateId,
    pszText, iCharCount, dwTextFlags, dwTextFlags2, pRect);
end;

function DrawThemeText(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  pszText: string; iCharCount: Integer; dwTextFlags, dwTextFlags2: DWORD;
  const pRect: TRect): HRESULT;
begin
  Result := DrawThemeText(hTheme, DC, iPartId, iStateId,
    PWideChar(WideString(pszText)), iCharCount, dwTextFlags, dwTextFlags2, @pRect);
end;

//vista extention
function DrawThemeTextEx(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  const pszText: WideString; iCharCount: Integer; dwTextFlags: DWORD;
  const pRect: TRect; const pOptions: TdxDTTOpts): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FDrawThemeTextEx(hTheme, DC, iPartId, iStateId,
    PWideChar(pszText), iCharCount, dwTextFlags, @pRect, pOptions);
end;

function GetThemeBackgroundContentRect(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  const BoundingRect: TRect; out ContentRect: TRect): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeBackgroundContentRect(hTheme,
    DC, iPartId, iStateId, BoundingRect, ContentRect);
end;

function GetThemeBackgroundExtent(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  pContentRect: PRect;
  out ExtentRect: TRect): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeBackgroundExtent(hTheme, DC,
    iPartId, iStateId, pContentRect, ExtentRect);
end;

function GetThemePartSize(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  prc: PRect; eSize: TdxThemeSize;
  psz: PSize): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemePartSize(hTheme, DC, iPartId,
    iStateId, prc, eSize, psz);
end;

function GetThemePartSize(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  const prc: TRect; eSize: TdxThemeSize; out psz: TSize): HRESULT;
begin                                                                   
  Result := GetThemePartSize(hTheme, DC, iPartId, iStateId, @prc, eSize, @psz);
end;

function GetThemePartSize(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  eSize: TdxThemeSize; out psz: TSize): HRESULT;
begin
  Result := GetThemePartSize(hTheme, DC, iPartId, iStateId, nil, eSize, @psz);
end;

function GetThemeTextExtent(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  pszTextL: PWideChar; iCharCount: Integer; dwTextFlags: DWORD;
  pBoundingRect: PRect; out ExtentRect: TRect): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeTextExtent(hTheme, DC, iPartId,
    iStateId, pszTextL, iCharCount, dwTextFlags, pBoundingRect, ExtentRect);
end;

function GetThemeTextMetrics(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  out tm: TEXTMETRIC): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeTextMetrics(hTheme, DC, iPartId,
    iStateId, tm);
end;

function GetThemeBackgroundRegion(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  pRect: PRect; out Region: HRGN): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeBackgroundRegion(hTheme,
    DC, iPartId, iStateId, pRect, Region);
end;

function HitTestThemeBackground(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  dwOptions: DWORD; pRect: PRect;
  hRgn: HRGN; ptTest: TPoint; out wHitTestCode: WORD): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FHitTestThemeBackground(hTheme, DC,
    iPartId, iStateId, dwOptions, pRect, hRgn, ptTest, wHitTestCode);
end;

function DrawThemeEdge(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  pDestRect: PRect;
  uEdge, uFlags: UINT; pContentRect: PRect): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FDrawThemeEdge(hTheme, DC, iPartId, iStateId,
    pDestRect, uEdge, uFlags, pContentRect);
end;

function DrawThemeEdge(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  const pDestRect: TRect; uEdge, uFlags: UINT; out pContentRect: TRect): HRESULT;
begin
  Result := DrawThemeEdge(hTheme, DC, iPartId, iStateId, @pDestRect, uEdge, uFlags, @pContentRect);
end;

function DrawThemeEdge(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  const pDestRect: TRect; uEdge, uFlags: UINT): HRESULT;
var
  R: TRect;
begin
  Result := DrawThemeEdge(hTheme, DC, iPartId, iStateId, pDestRect, uEdge, uFlags, R);
end;

function DrawThemeIcon(hTheme: TdxTheme; DC: HDC; iPartId, iStateId: Integer;
  pRect: PRect; himl: HIMAGELIST; iImageIndex: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FDrawThemeIcon(hTheme, DC, iPartId, iStateId,
    pRect, himl, iImageIndex);
end;

function IsThemePartDefined(hTheme: TdxTheme; iPartId: Integer; iStateId: Integer): BOOL;
begin
  Result := FThemeLibraryMethodPointersKeeper.FIsThemePartDefined(hTheme, iPartId, iStateId);
end;

function IsThemeBackgroundPartiallyTransparent(hTheme: TdxTheme;
  iPartId: Integer; iStateId: Integer): BOOL;
begin
  Result := FThemeLibraryMethodPointersKeeper.FIsThemeBackgroundPartiallyTransparent(hTheme,
    iPartId, iStateId);
end;

function DrawThemeParentBackground(hWnd: HWND; DC: HDC; const prc: TRect): HRESULT;
var
  AFontHandle: HFONT;
begin
  AFontHandle := GetCurrentObject(DC, OBJ_FONT);
  Result := FThemeLibraryMethodPointersKeeper.FDrawThemeParentBackground(hWnd, DC, prc);
  SelectObject(DC, AFontHandle);
end;

function GetThemeColor(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  out Color: TColorRef): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeColor(hTheme, iPartId, iStateId, iPropId, Color);
end;

function GetThemeMetric(hTheme: TdxTheme; DC: HDC; iPartId, iStateId, iPropId: Integer;
  out iVal: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeMetric(hTheme, DC, iPartId,
    iStateId, iPropId, iVal);
end;

function GetThemeString(hTheme: TdxTheme; iPartId, iStateId, iPropId: Integer;
  pszBuff: PWideChar; cchMaxBuffChars: Integer): HRESULT;
begin
  Result := FThemeLibraryMethodPointersKeeper.FGetThemeString(hTheme, iPartId, iStateId,
    iPropId, pszBuff, cchMaxBuffChars);
end;

⌨️ 快捷键说明

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