V9.71
V9.71
This commit is contained in:
855
Vcl.Styles.Utils.Misc.pas
Normal file
855
Vcl.Styles.Utils.Misc.pas
Normal file
@@ -0,0 +1,855 @@
|
||||
// **************************************************************************************************
|
||||
//
|
||||
// Unit Vcl.Styles.Utils.Misc
|
||||
// unit for the VCL Styles Utils
|
||||
// https://github.com/RRUZ/vcl-styles-utils/
|
||||
//
|
||||
// The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License");
|
||||
// you may not use this file except in compliance with the License. You may obtain a copy of the
|
||||
// License at http://www.mozilla.org/MPL/
|
||||
//
|
||||
// Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF
|
||||
// ANY KIND, either express or implied. See the License for the specific language governing rights
|
||||
// and limitations under the License.
|
||||
//
|
||||
// The Original Code is Vcl.Styles.Utils.Misc.pas.
|
||||
//
|
||||
// Portions created by Rodrigo Ruz V. are Copyright (C) 2013-2023 Rodrigo Ruz V.
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// **************************************************************************************************
|
||||
unit Vcl.Styles.Utils.Misc;
|
||||
|
||||
{$I VCL.Styles.Utils.inc}
|
||||
|
||||
interface
|
||||
|
||||
uses
|
||||
Winapi.Messages,
|
||||
Winapi.Windows;
|
||||
|
||||
{ .$DEFINE EventLog }
|
||||
function GetWindowClassName(Window: HWND): String;
|
||||
function RectVCenter(var R: TRect; const Bounds: TRect): TRect;
|
||||
procedure MoveWindowOrg(DC: HDC; const DX, DY: Integer);
|
||||
{$IFDEF EventLog}
|
||||
procedure AddToLog(const Msg: TMessage); overload;
|
||||
procedure AddToLog(const S: string; const Value: Integer); overload;
|
||||
procedure AddToLog(const Msg: string); overload;
|
||||
function WM_To_String(const WM_Message: Integer): string;
|
||||
{$ENDIF}
|
||||
function ExecutingInMainThread: boolean;
|
||||
function GetSysMetrics(nIndex: Integer): Integer;
|
||||
|
||||
var
|
||||
GlobalMainThreadID: TThreadID = 0;
|
||||
|
||||
implementation
|
||||
|
||||
uses
|
||||
Winapi.CommCtrl,
|
||||
System.SysUtils,
|
||||
Vcl.Forms;
|
||||
|
||||
function ExecutingInMainThread: boolean;
|
||||
begin
|
||||
// VCL is not thread safe and some components like CEF will create Windows
|
||||
// controls in secondary threads. It's strongly recommended to define
|
||||
// LimitStylesToMainApplicationThread in VCL.Styles.Utils.inc if you see
|
||||
// dialogs or controls partially themed.
|
||||
{$IFDEF LimitStylesToMainApplicationThread}
|
||||
Result := (GetCurrentThreadId = MainThreadId);
|
||||
{$ELSE}
|
||||
Result := True;
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
function GetSysMetrics(nIndex: Integer): Integer;
|
||||
begin
|
||||
{$IF (CompilerVersion >= 33)}
|
||||
if TOSVersion.Check(10) and (TOSVersion.Build >= 14393) then
|
||||
begin
|
||||
// Windows 10, version 1607 or higher
|
||||
if Assigned(Application.Mainform) then
|
||||
Result := GetSystemMetricsForDPI(nIndex, Application.Mainform.Monitor.PixelsPerInch)
|
||||
else
|
||||
Result := GetSystemMetricsForDPI(nIndex, Screen.PixelsPerInch);
|
||||
end
|
||||
else
|
||||
Result := GetSystemMetrics(nIndex);
|
||||
{$ELSE}
|
||||
Result := GetSystemMetrics(nIndex);
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
{$IFDEF EventLog}
|
||||
|
||||
{ Useful functions when debugging }
|
||||
procedure AddToLog(const Msg: TMessage);
|
||||
begin
|
||||
with Msg do
|
||||
OutputDebugString(PChar(FormatDateTime('hh:nn:ss.zzz', Now) + ' Msg = ' + WM_To_String(Msg) + ' wParam = ' +
|
||||
IntToStr(wParam) + ' LParam = ' + IntToStr(lParam)));
|
||||
end;
|
||||
|
||||
procedure AddToLog(const S: string; const Value: Integer);
|
||||
begin
|
||||
OutputDebugString(PChar((S) + ' = ' + IntToStr(Value)));
|
||||
end;
|
||||
|
||||
procedure AddToLog(const Msg: string);
|
||||
begin
|
||||
OutputDebugString(PChar(Msg));
|
||||
end;
|
||||
|
||||
function WM_To_String(const WM_Message: Integer): string;
|
||||
begin
|
||||
case WM_Message of
|
||||
$0000:
|
||||
Result := 'WM_NULL';
|
||||
$0001:
|
||||
Result := 'WM_CREATE';
|
||||
$0002:
|
||||
Result := 'WM_DESTROY';
|
||||
$0003:
|
||||
Result := 'WM_MOVE';
|
||||
$0005:
|
||||
Result := 'WM_SIZE';
|
||||
$0006:
|
||||
Result := 'WM_ACTIVATE';
|
||||
$0007:
|
||||
Result := 'WM_SETFOCUS';
|
||||
$0008:
|
||||
Result := 'WM_KILLFOCUS';
|
||||
$000A:
|
||||
Result := 'WM_ENABLE';
|
||||
$000B:
|
||||
Result := 'WM_SETREDRAW';
|
||||
$000C:
|
||||
Result := 'WM_SETTEXT';
|
||||
$000D:
|
||||
Result := 'WM_GETTEXT';
|
||||
$000E:
|
||||
Result := 'WM_GETTEXTLENGTH';
|
||||
$000F:
|
||||
Result := 'WM_PAINT';
|
||||
$0010:
|
||||
Result := 'WM_CLOSE';
|
||||
$0011:
|
||||
Result := 'WM_QUERYENDSESSION';
|
||||
$0012:
|
||||
Result := 'WM_QUIT';
|
||||
$0013:
|
||||
Result := 'WM_QUERYOPEN';
|
||||
$0014:
|
||||
Result := 'WM_ERASEBKGND';
|
||||
$0015:
|
||||
Result := 'WM_SYSCOLORCHANGE';
|
||||
$0016:
|
||||
Result := 'WM_EndSESSION';
|
||||
$0017:
|
||||
Result := 'WM_SYSTEMERROR';
|
||||
$0018:
|
||||
Result := 'WM_SHOWWINDOW';
|
||||
$0019:
|
||||
Result := 'WM_CTLCOLOR';
|
||||
$001A:
|
||||
Result := 'WM_WININICHANGE or WM_SETTINGCHANGE';
|
||||
$001B:
|
||||
Result := 'WM_DEVMODECHANGE';
|
||||
$001C:
|
||||
Result := 'WM_ACTIVATEAPP';
|
||||
$001D:
|
||||
Result := 'WM_FONTCHANGE';
|
||||
$001E:
|
||||
Result := 'WM_TIMECHANGE';
|
||||
$001F:
|
||||
Result := 'WM_CANCELMODE';
|
||||
$0020:
|
||||
Result := 'WM_SETCURSOR';
|
||||
$0021:
|
||||
Result := 'WM_MOUSEACTIVATE';
|
||||
$0022:
|
||||
Result := 'WM_CHILDACTIVATE';
|
||||
$0023:
|
||||
Result := 'WM_QUEUESYNC';
|
||||
$0024:
|
||||
Result := 'WM_GETMINMAXINFO';
|
||||
$0026:
|
||||
Result := 'WM_PAINTICON';
|
||||
$0027:
|
||||
Result := 'WM_ICONERASEBKGND';
|
||||
$0028:
|
||||
Result := 'WM_NEXTDLGCTL';
|
||||
$002A:
|
||||
Result := 'WM_SPOOLERSTATUS';
|
||||
$002B:
|
||||
Result := 'WM_DRAWITEM';
|
||||
$002C:
|
||||
Result := 'WM_MEASUREITEM';
|
||||
$002D:
|
||||
Result := 'WM_DELETEITEM';
|
||||
$002E:
|
||||
Result := 'WM_VKEYTOITEM';
|
||||
$002F:
|
||||
Result := 'WM_CHARTOITEM';
|
||||
$0030:
|
||||
Result := 'WM_SETFONT';
|
||||
$0031:
|
||||
Result := 'WM_GETFONT';
|
||||
$0032:
|
||||
Result := 'WM_SETHOTKEY';
|
||||
$0033:
|
||||
Result := 'WM_GETHOTKEY';
|
||||
$0037:
|
||||
Result := 'WM_QUERYDRAGICON';
|
||||
$0039:
|
||||
Result := 'WM_COMPAREITEM';
|
||||
$003D:
|
||||
Result := 'WM_GETOBJECT';
|
||||
$0041:
|
||||
Result := 'WM_COMPACTING';
|
||||
$0044:
|
||||
Result := 'WM_COMMNOTIFY { obsolete in Win32}';
|
||||
$0046:
|
||||
Result := 'WM_WINDOWPOSCHANGING';
|
||||
$0047:
|
||||
Result := 'WM_WINDOWPOSCHANGED';
|
||||
$0048:
|
||||
Result := 'WM_POWER';
|
||||
$004A:
|
||||
Result := 'WM_COPYDATA';
|
||||
$004B:
|
||||
Result := 'WM_CANCELJOURNAL';
|
||||
$004E:
|
||||
Result := 'WM_NOTIFY';
|
||||
$0050:
|
||||
Result := 'WM_INPUTLANGCHANGEREQUEST';
|
||||
$0051:
|
||||
Result := 'WM_INPUTLANGCHANGE';
|
||||
$0052:
|
||||
Result := 'WM_TCARD';
|
||||
$0053:
|
||||
Result := 'WM_HELP';
|
||||
$0054:
|
||||
Result := 'WM_USERCHANGED';
|
||||
$0055:
|
||||
Result := 'WM_NOTIFYFORMAT';
|
||||
$007B:
|
||||
Result := 'WM_CONTEXTMENU';
|
||||
$007C:
|
||||
Result := 'WM_STYLECHANGING';
|
||||
$007D:
|
||||
Result := 'WM_STYLECHANGED';
|
||||
$007E:
|
||||
Result := 'WM_DISPLAYCHANGE';
|
||||
$007F:
|
||||
Result := 'WM_GETICON';
|
||||
$0080:
|
||||
Result := 'WM_SETICON';
|
||||
$0081:
|
||||
Result := 'WM_NCCREATE';
|
||||
$0082:
|
||||
Result := 'WM_NCDESTROY';
|
||||
$0083:
|
||||
Result := 'WM_NCCALCSIZE';
|
||||
$0084:
|
||||
Result := 'WM_NCHITTEST';
|
||||
$0085:
|
||||
Result := 'WM_NCPAINT';
|
||||
$0086:
|
||||
Result := 'WM_NCACTIVATE';
|
||||
$0087:
|
||||
Result := 'WM_GETDLGCODE';
|
||||
$0088:
|
||||
Result := 'WM_SYNCPAINT';
|
||||
$00A0:
|
||||
Result := 'WM_NCMOUSEMOVE';
|
||||
$00A1:
|
||||
Result := 'WM_NCLBUTTONDOWN';
|
||||
$00A2:
|
||||
Result := 'WM_NCLBUTTONUP';
|
||||
$00A3:
|
||||
Result := 'WM_NCLBUTTONDBLCLK';
|
||||
$00A4:
|
||||
Result := 'WM_NCRBUTTONDOWN';
|
||||
$00A5:
|
||||
Result := 'WM_NCRBUTTONUP';
|
||||
$00A6:
|
||||
Result := 'WM_NCRBUTTONDBLCLK';
|
||||
$00A7:
|
||||
Result := 'WM_NCMBUTTONDOWN';
|
||||
$00A8:
|
||||
Result := 'WM_NCMBUTTONUP';
|
||||
$00A9:
|
||||
Result := 'WM_NCMBUTTONDBLCLK';
|
||||
// edit control messages start (todo: add more if needed)
|
||||
$00B0:
|
||||
Result := 'EM_GETSEL';
|
||||
$00B1:
|
||||
Result := 'EM_SETSEL';
|
||||
$00B2:
|
||||
Result := 'EM_GETRECT';
|
||||
$00B3:
|
||||
Result := 'EM_SETRECT';
|
||||
$00B4:
|
||||
Result := 'EM_SETRECTNP';
|
||||
$00B5:
|
||||
Result := 'EM_SCROLL';
|
||||
$00B6:
|
||||
Result := 'EM_LINESCROLL';
|
||||
$00B7:
|
||||
Result := 'EM_SCROLLCARET';
|
||||
$00B8:
|
||||
Result := 'EM_GETMODIFY';
|
||||
$00B9:
|
||||
Result := 'EM_SETMODIFY';
|
||||
$00BA:
|
||||
Result := 'EM_GETLINECOUNT';
|
||||
$00BB:
|
||||
Result := 'EM_LINEINDEX';
|
||||
$00BC:
|
||||
Result := 'EM_SETHANDLE';
|
||||
$00BD:
|
||||
Result := 'EM_GETHANDLE';
|
||||
$00BE:
|
||||
Result := 'EM_GETTHUMB';
|
||||
$00C1:
|
||||
Result := 'EM_LINELENGTH';
|
||||
$00C2:
|
||||
Result := 'EM_REPLACESEL';
|
||||
$00C4:
|
||||
Result := 'EM_GETLINE';
|
||||
$00C5:
|
||||
Result := 'EM_LIMITTEXT';
|
||||
$00C6:
|
||||
Result := 'EM_CANUNDO';
|
||||
$00C7:
|
||||
Result := 'EM_UNDO';
|
||||
$00C8:
|
||||
Result := 'EM_FMTLINES';
|
||||
$00C9:
|
||||
Result := 'EM_LINEFROMCHAR';
|
||||
$00CB:
|
||||
Result := 'EM_SETTABSTOPS';
|
||||
$00CC:
|
||||
Result := 'EM_SETPASSWORDCHAR';
|
||||
$00CD:
|
||||
Result := 'EM_EMPTYUNDOBUFFER';
|
||||
$00CE:
|
||||
Result := 'EM_GETFIRSTVISIBLELINE';
|
||||
$00CF:
|
||||
Result := 'EM_SETREADONLY';
|
||||
$00D0:
|
||||
Result := 'EM_SETWORDBREAKPROC';
|
||||
$00D1:
|
||||
Result := 'EM_GETWORDBREAKPROC';
|
||||
$00D2:
|
||||
Result := 'EM_GETPASSWORDCHAR';
|
||||
$00D3:
|
||||
Result := 'EM_SETMARGINS';
|
||||
$00D4:
|
||||
Result := 'EM_GETMARGINS';
|
||||
$00D5:
|
||||
Result := 'EM_GETLIMITTEXT';
|
||||
$00D6:
|
||||
Result := 'EM_POSFROMCHAR';
|
||||
$00D7:
|
||||
Result := 'EM_CHARFROMPOS';
|
||||
// edit control messages end
|
||||
// scrollbar control messages start
|
||||
$00E0:
|
||||
Result := 'SBM_SETPOS';
|
||||
$00E1:
|
||||
Result := 'SBM_GETPOS';
|
||||
$00E2:
|
||||
Result := 'SBM_SETRANGE';
|
||||
$00E3:
|
||||
Result := 'SBM_GETRANGE';
|
||||
$00E4:
|
||||
Result := 'SBM_ENABLE_ARROWS';
|
||||
$00E6:
|
||||
Result := 'SBM_SETRANGEREDRAW';
|
||||
$00E9:
|
||||
Result := 'SBM_SETSCROLLINFO';
|
||||
$00EA:
|
||||
Result := 'SBM_GETSCROLLINFO';
|
||||
$00EB:
|
||||
Result := 'SBM_GETSCROLLBARINFO';
|
||||
// scrollbar control messages end
|
||||
// button control messages start
|
||||
$00F0:
|
||||
Result := 'BM_GETCHECK';
|
||||
$00F1:
|
||||
Result := 'BM_SETCHECK';
|
||||
$00F2:
|
||||
Result := 'BM_GETSTATE';
|
||||
$00F3:
|
||||
Result := 'BM_SETSTATE';
|
||||
$00F4:
|
||||
Result := 'BM_SETSTYLE';
|
||||
$00F5:
|
||||
Result := 'BM_CLICK';
|
||||
$00F6:
|
||||
Result := 'BM_GETIMAGE';
|
||||
$00F7:
|
||||
Result := 'BM_SETIMAGE';
|
||||
$00F8:
|
||||
Result := 'BM_SETDONTCLICK';
|
||||
|
||||
$0090:
|
||||
Result := 'WM_UAHDESTROYWINDOW';
|
||||
$0091:
|
||||
Result := 'WM_UAHDRAWMENU';
|
||||
$0092:
|
||||
Result := 'WM_UAHDRAWMENUITEM';
|
||||
$0093:
|
||||
Result := 'WM_UAHINITMENU';
|
||||
$0094:
|
||||
Result := 'WM_UAHMEASUREMENUITEM';
|
||||
$0095:
|
||||
Result := 'WM_UAHNCPAINTMENUPOPUP';
|
||||
|
||||
$01E0:
|
||||
Result := 'MN_SETHMENU';
|
||||
$01E1:
|
||||
Result := 'MN_GETHMENU';
|
||||
$01E2:
|
||||
Result := 'MN_SIZEWINDOW';
|
||||
$01E3:
|
||||
Result := 'MN_OPENHIERARCHY';
|
||||
$01E4:
|
||||
Result := 'MN_CLOSEHIERARCHY';
|
||||
$01E5:
|
||||
Result := 'MN_SELECTITEM';
|
||||
$01E6:
|
||||
Result := 'MN_CANCELMENUS';
|
||||
$01E7:
|
||||
Result := 'MN_SELECTFIRSTVALIDITEM';
|
||||
|
||||
$01EA:
|
||||
Result := 'MN_GETPPOPUPMENU';
|
||||
$01EB:
|
||||
Result := 'MN_FINDMENUWINDOWFROMPOINT';
|
||||
$01EC:
|
||||
Result := 'MN_SHOWPOPUPWINDOW';
|
||||
$01ED:
|
||||
Result := 'MN_BUTTONDOWN';
|
||||
$01F0:
|
||||
Result := 'MN_SETTIMERTOOPENHIERARCHY';
|
||||
$01F1:
|
||||
Result := 'MN_DBLCLK';
|
||||
$01F2:
|
||||
Result := 'MN_ENDMENU';
|
||||
$01F3:
|
||||
Result := 'MN_DODRAGDROP';
|
||||
|
||||
// button control messages end
|
||||
$0100:
|
||||
Result := 'WM_KEYFIRST or WM_KEYDOWN';
|
||||
$0101:
|
||||
Result := 'WM_KEYUP';
|
||||
$0102:
|
||||
Result := 'WM_CHAR';
|
||||
$0103:
|
||||
Result := 'WM_DEADCHAR';
|
||||
$0104:
|
||||
Result := 'WM_SYSKEYDOWN';
|
||||
$0105:
|
||||
Result := 'WM_SYSKEYUP';
|
||||
$0106:
|
||||
Result := 'WM_SYSCHAR';
|
||||
$0107:
|
||||
Result := 'WM_SYSDEADCHAR';
|
||||
$0108:
|
||||
Result := 'WM_KEYLAST';
|
||||
$010D:
|
||||
Result := 'WM_IME_STARTCOMPOSITION';
|
||||
$010E:
|
||||
Result := 'WM_IME_ENDCOMPOSITION';
|
||||
$010F:
|
||||
Result := 'WM_IME_COMPOSITION or WM_IME_KEYLAST';
|
||||
$0110:
|
||||
Result := 'WM_INITDIALOG';
|
||||
$0111:
|
||||
Result := 'WM_COMMAND';
|
||||
$0112:
|
||||
Result := 'WM_SYSCOMMAND';
|
||||
$0113:
|
||||
Result := 'WM_TIMER';
|
||||
$0114:
|
||||
Result := 'WM_HSCROLL';
|
||||
$0115:
|
||||
Result := 'WM_VSCROLL';
|
||||
$0116:
|
||||
Result := 'WM_INITMENU';
|
||||
$0117:
|
||||
Result := 'WM_INITMENUPOPUP';
|
||||
$011F:
|
||||
Result := 'WM_MENUSELECT';
|
||||
$0120:
|
||||
Result := 'WM_MENUCHAR';
|
||||
$0121:
|
||||
Result := 'WM_ENTERIDLE';
|
||||
$0122:
|
||||
Result := 'WM_MENURBUTTONUP';
|
||||
$0123:
|
||||
Result := 'WM_MENUDRAG';
|
||||
$0124:
|
||||
Result := 'WM_MENUGETOBJECT';
|
||||
$0125:
|
||||
Result := 'WM_UNINITMENUPOPUP';
|
||||
$0126:
|
||||
Result := 'WM_MENUCOMMAND';
|
||||
$0127:
|
||||
Result := 'WM_CHANGEUISTATE';
|
||||
$0128:
|
||||
Result := 'WM_UPDATEUISTATE';
|
||||
$0129:
|
||||
Result := 'WM_QUERYUISTATE';
|
||||
$0132:
|
||||
Result := 'WM_CTLCOLORMSGBOX';
|
||||
$0133:
|
||||
Result := 'WM_CTLCOLOREDIT';
|
||||
$0134:
|
||||
Result := 'WM_CTLCOLORLISTBOX';
|
||||
$0135:
|
||||
Result := 'WM_CTLCOLORBTN';
|
||||
$0136:
|
||||
Result := 'WM_CTLCOLORDLG';
|
||||
$0137:
|
||||
Result := 'WM_CTLCOLORSCROLLBAR';
|
||||
$0138:
|
||||
Result := 'WM_CTLCOLORSTATIC';
|
||||
$0140:
|
||||
Result := 'CB_GETEDITSEL';
|
||||
$0141:
|
||||
Result := 'CB_LIMITTEXT';
|
||||
$0142:
|
||||
Result := 'CB_SETEDITSEL';
|
||||
$0143:
|
||||
Result := 'CB_ADDSTRING';
|
||||
$0144:
|
||||
Result := 'CB_DELETESTRING';
|
||||
$0145:
|
||||
Result := 'CB_DIR';
|
||||
$0146:
|
||||
Result := 'CB_GETCOUNT';
|
||||
$0147:
|
||||
Result := 'CB_GETCURSEL';
|
||||
$0148:
|
||||
Result := 'CB_GETLBTEXT';
|
||||
$0149:
|
||||
Result := 'CB_GETLBTEXTLEN';
|
||||
$014A:
|
||||
Result := 'CB_INSERTSTRING';
|
||||
$014B:
|
||||
Result := 'CB_RESETCONTENT';
|
||||
$014C:
|
||||
Result := 'CB_FINDSTRING';
|
||||
$014D:
|
||||
Result := 'CB_SELECTSTRING';
|
||||
$014E:
|
||||
Result := 'CB_SETCURSEL';
|
||||
$014F:
|
||||
Result := 'CB_SHOWDROPDOWN';
|
||||
$0150:
|
||||
Result := 'CB_GETITEMDATA';
|
||||
$0151:
|
||||
Result := 'CB_SETITEMDATA';
|
||||
$0152:
|
||||
Result := 'CB_GETDROPPEDCONTROLRECT';
|
||||
$0153:
|
||||
Result := 'CB_SETITEMHEIGHT';
|
||||
$0154:
|
||||
Result := 'CB_GETITEMHEIGHT';
|
||||
$0155:
|
||||
Result := 'CB_SETEXTENDEDUI';
|
||||
$0156:
|
||||
Result := 'CB_GETEXTENDEDUI';
|
||||
$0157:
|
||||
Result := 'CB_GETDROPPEDSTATE';
|
||||
$0158:
|
||||
Result := 'CB_FINDSTRINGEXACT';
|
||||
$0159:
|
||||
Result := 'CB_SETLOCALE';
|
||||
$015A:
|
||||
Result := 'CB_GETLOCALE';
|
||||
$015B:
|
||||
Result := 'CB_GETTOPINDEX';
|
||||
$015C:
|
||||
Result := 'CB_SETTOPINDEX';
|
||||
$015D:
|
||||
Result := 'CB_GETHORIZONTALEXTENT';
|
||||
$015E:
|
||||
Result := 'CB_SETHORIZONTALEXTENT';
|
||||
$015F:
|
||||
Result := 'CB_GETDROPPEDWIDTH';
|
||||
$0160:
|
||||
Result := 'CB_SETDROPPEDWIDTH';
|
||||
$0161:
|
||||
Result := 'CB_INITSTORAGE';
|
||||
$0163:
|
||||
Result := 'CB_MULTIPLEADDSTRING';
|
||||
$0164:
|
||||
Result := 'CB_GETCOMBOBOXINFO';
|
||||
$0200:
|
||||
Result := 'WM_MOUSEFIRST or WM_MOUSEMOVE';
|
||||
$0201:
|
||||
Result := 'WM_LBUTTONDOWN';
|
||||
$0202:
|
||||
Result := 'WM_LBUTTONUP';
|
||||
$0203:
|
||||
Result := 'WM_LBUTTONDBLCLK';
|
||||
$0204:
|
||||
Result := 'WM_RBUTTONDOWN';
|
||||
$0205:
|
||||
Result := 'WM_RBUTTONUP';
|
||||
$0206:
|
||||
Result := 'WM_RBUTTONDBLCLK';
|
||||
$0207:
|
||||
Result := 'WM_MBUTTONDOWN';
|
||||
$0208:
|
||||
Result := 'WM_MBUTTONUP';
|
||||
$0209:
|
||||
Result := 'WM_MBUTTONDBLCLK';
|
||||
$020A:
|
||||
Result := 'WM_MOUSEWHEEL or WM_MOUSELAST';
|
||||
$0210:
|
||||
Result := 'WM_PARENTNOTIFY';
|
||||
$0211:
|
||||
Result := 'WM_ENTERMENULOOP';
|
||||
$0212:
|
||||
Result := 'WM_EXITMENULOOP';
|
||||
$0213:
|
||||
Result := 'WM_NEXTMENU';
|
||||
$0214:
|
||||
Result := 'WM_SIZING';
|
||||
$0215:
|
||||
Result := 'WM_CAPTURECHANGED';
|
||||
$0216:
|
||||
Result := 'WM_MOVING';
|
||||
$0218:
|
||||
Result := 'WM_POWERBROADCAST';
|
||||
$0219:
|
||||
Result := 'WM_DEVICECHANGE';
|
||||
$0220:
|
||||
Result := 'WM_MDICREATE';
|
||||
$0221:
|
||||
Result := 'WM_MDIDESTROY';
|
||||
$0222:
|
||||
Result := 'WM_MDIACTIVATE';
|
||||
$0223:
|
||||
Result := 'WM_MDIRESTORE';
|
||||
$0224:
|
||||
Result := 'WM_MDINEXT';
|
||||
$0225:
|
||||
Result := 'WM_MDIMAXIMIZE';
|
||||
$0226:
|
||||
Result := 'WM_MDITILE';
|
||||
$0227:
|
||||
Result := 'WM_MDICASCADE';
|
||||
$0228:
|
||||
Result := 'WM_MDIICONARRANGE';
|
||||
$0229:
|
||||
Result := 'WM_MDIGETACTIVE';
|
||||
$0230:
|
||||
Result := 'WM_MDISETMENU';
|
||||
$0231:
|
||||
Result := 'WM_ENTERSIZEMOVE';
|
||||
$0232:
|
||||
Result := 'WM_EXITSIZEMOVE';
|
||||
$0233:
|
||||
Result := 'WM_DROPFILES';
|
||||
$0234:
|
||||
Result := 'WM_MDIREFRESHMENU';
|
||||
$0281:
|
||||
Result := 'WM_IME_SETCONTEXT';
|
||||
$0282:
|
||||
Result := 'WM_IME_NOTIFY';
|
||||
$0283:
|
||||
Result := 'WM_IME_CONTROL';
|
||||
$0284:
|
||||
Result := 'WM_IME_COMPOSITIONFULL';
|
||||
$0285:
|
||||
Result := 'WM_IME_SELECT';
|
||||
$0286:
|
||||
Result := 'WM_IME_CHAR';
|
||||
$0288:
|
||||
Result := 'WM_IME_REQUEST';
|
||||
$0290:
|
||||
Result := 'WM_IME_KEYDOWN';
|
||||
$0291:
|
||||
Result := 'WM_IME_KEYUP';
|
||||
$02A1:
|
||||
Result := 'WM_MOUSEHOVER';
|
||||
$02A2:
|
||||
Result := 'WM_NCMOUSELEAVE';
|
||||
$02A3:
|
||||
Result := 'WM_MOUSELEAVE';
|
||||
$0300:
|
||||
Result := 'WM_CUT';
|
||||
$0301:
|
||||
Result := 'WM_COPY';
|
||||
$0302:
|
||||
Result := 'WM_PASTE';
|
||||
$0303:
|
||||
Result := 'WM_CLEAR';
|
||||
$0304:
|
||||
Result := 'WM_UNDO';
|
||||
$0305:
|
||||
Result := 'WM_RENDERFORMAT';
|
||||
$0306:
|
||||
Result := 'WM_RENDERALLFORMATS';
|
||||
$0307:
|
||||
Result := 'WM_DESTROYCLIPBOARD';
|
||||
$0308:
|
||||
Result := 'WM_DRAWCLIPBOARD';
|
||||
$0309:
|
||||
Result := 'WM_PAINTCLIPBOARD';
|
||||
$030A:
|
||||
Result := 'WM_VSCROLLCLIPBOARD';
|
||||
$030B:
|
||||
Result := 'WM_SIZECLIPBOARD';
|
||||
$030C:
|
||||
Result := 'WM_ASKCBFORMATNAME';
|
||||
$030D:
|
||||
Result := 'WM_CHANGECBCHAIN';
|
||||
$030E:
|
||||
Result := 'WM_HSCROLLCLIPBOARD';
|
||||
$030F:
|
||||
Result := 'WM_QUERYNEWPALETTE';
|
||||
$0310:
|
||||
Result := 'WM_PALETTEISCHANGING';
|
||||
$0311:
|
||||
Result := 'WM_PALETTECHANGED';
|
||||
$0312:
|
||||
Result := 'WM_HOTKEY';
|
||||
$0317:
|
||||
Result := 'WM_PRINT';
|
||||
$0318:
|
||||
Result := 'WM_PRINTCLIENT';
|
||||
$031F:
|
||||
Result := 'WM_DWMNCRENDERINGCHANGED';
|
||||
$0358:
|
||||
Result := 'WM_HANDHELDFIRST';
|
||||
$035F:
|
||||
Result := 'WM_HANDHELDLAST';
|
||||
$0380:
|
||||
Result := 'WM_PENWINFIRST';
|
||||
$038F:
|
||||
Result := 'WM_PENWINLAST';
|
||||
$0390:
|
||||
Result := 'WM_COALESCE_FIRST';
|
||||
$039F:
|
||||
Result := 'WM_COALESCE_LAST';
|
||||
$03E0:
|
||||
Result := 'WM_DDE_FIRST or WM_DDE_INITIATE';
|
||||
$03E1:
|
||||
Result := 'WM_DDE_TERMINATE';
|
||||
$03E2:
|
||||
Result := 'WM_DDE_ADVISE';
|
||||
$03E3:
|
||||
Result := 'WM_DDE_UNADVISE';
|
||||
$03E4:
|
||||
Result := 'WM_DDE_ACK';
|
||||
$03E5:
|
||||
Result := 'WM_DDE_DATA';
|
||||
$03E6:
|
||||
Result := 'WM_DDE_REQUEST';
|
||||
$03E7:
|
||||
Result := 'WM_DDE_POKE';
|
||||
$03E8:
|
||||
Result := 'WM_DDE_EXECUTE or WM_DDE_LAST';
|
||||
$0400:
|
||||
Result := 'WM_USER';
|
||||
// progress bar
|
||||
$0401:
|
||||
Result := 'PBM_SETRANGE';
|
||||
$0402:
|
||||
Result := 'PBM_SETPOS';
|
||||
$0403:
|
||||
Result := 'PBM_DELTAPOS';
|
||||
$0404:
|
||||
Result := 'PBM_SETSTEP';
|
||||
$0405:
|
||||
Result := 'PBM_STEPIT';
|
||||
$0406:
|
||||
Result := 'PBM_SETRANGE32';
|
||||
$0407:
|
||||
Result := 'PBM_GETRANGE';
|
||||
$0408:
|
||||
Result := 'PBM_GETPOS';
|
||||
$0409:
|
||||
Result := 'PBM_SETBARCOLOR';
|
||||
$040A:
|
||||
Result := 'PBM_SETMARQUEE';
|
||||
$040D:
|
||||
Result := 'PBM_GETSTEP';
|
||||
$040E:
|
||||
Result := 'PBM_GETBKCOLOR';
|
||||
$040F:
|
||||
Result := 'PBM_GETBARCOLOR';
|
||||
$0410:
|
||||
Result := 'PBM_SETSTATE';
|
||||
$0411:
|
||||
Result := 'PBM_GETSTATE';
|
||||
// misc
|
||||
$0469:
|
||||
Result := 'UDM_SETBUDDY';
|
||||
$046A:
|
||||
Result := 'UDM_GETBUDDY';
|
||||
$102C:
|
||||
Result := 'LVM_GETITEMSTATE';
|
||||
$8000:
|
||||
Result := 'WM_APP';
|
||||
|
||||
LM_HITTEST:
|
||||
Result := 'LM_HITTEST';
|
||||
LM_GETIDEALHEIGHT:
|
||||
Result := 'LM_GETIDEALHEIGHT';
|
||||
LM_SETITEM:
|
||||
Result := 'LM_SETITEM';
|
||||
LM_GETITEM:
|
||||
Result := 'LM_GETITEM';
|
||||
// LM_GETIDEALSIZE: Result:= 'LM_GETIDEALSIZE';
|
||||
|
||||
else
|
||||
begin
|
||||
if WM_Message > WM_USER then
|
||||
Result := 'WM_USER + (' + IntToHex(WM_Message - WM_USER, 4) + ')'
|
||||
|
||||
else
|
||||
Result := 'Unknown(' + IntToHex(WM_Message, 4) + ')';
|
||||
end;
|
||||
end; { Case }
|
||||
end;
|
||||
|
||||
{$ENDIF}
|
||||
|
||||
function GetWindowClassName(Window: HWND): String;
|
||||
var
|
||||
lpClassName: array [0 .. 255] of Char;
|
||||
begin
|
||||
Result := '';
|
||||
if GetClassName(Window, @lpClassName, Length(lpClassName)) > 0 then
|
||||
Result := lpClassName;
|
||||
end;
|
||||
|
||||
function RectVCenter(var R: TRect; const Bounds: TRect): TRect;
|
||||
begin
|
||||
OffsetRect(R, -R.Left, -R.Top);
|
||||
OffsetRect(R, 0, (Bounds.Height - R.Height) div 2);
|
||||
OffsetRect(R, Bounds.Left, Bounds.Top);
|
||||
Result := R;
|
||||
end;
|
||||
|
||||
procedure MoveWindowOrg(DC: HDC; const DX, DY: Integer);
|
||||
var
|
||||
P: TPoint;
|
||||
begin
|
||||
GetWindowOrgEx(DC, P);
|
||||
SetWindowOrgEx(DC, P.X - DX, P.Y - DY, nil);
|
||||
end;
|
||||
|
||||
end.
|
||||
Reference in New Issue
Block a user