📄 cxpbase.h
字号:
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 预处理
#pragma once
#include "CXPDefine.h"
#include "CXPMacro.h"
#include "CXPColor.h"
#include "ClassXP.h"
#include <Windows.h>
#include <CommCtrl.h>
#pragma warning(disable: 4311)
#pragma warning(disable: 4312)
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 保持与 Visual C++ 6.0 兼容
#if (_MSC_VER < 1300)
typedef LPCSTR PCSTR;
typedef LPCSTR PCSTR;
typedef LPSTR PSTR;
typedef LPTSTR PTSTR;
typedef LPCTSTR PCTSTR;
typedef LPVOID PVOID;
#endif
#ifndef GWLP_WNDPROC
#define GWLP_WNDPROC GWL_WNDPROC
#define SetWindowLongPtr SetWindowLong
typedef LONG LONG_PTR;
#else
#pragma warning(disable:4244)
#endif
#ifndef BS_TYPEMASK
#define BS_TYPEMASK 0x0000000F
#endif
#ifndef CBS_TYPEMASK
#define CBS_TYPEMASK 0x00000003
#endif
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// CLASSXP 结构
typedef struct tagCLASSXP
{
UINT uClass; // 类
PCTSTR ptzClass; // 类名
VOID (*pDraw)(PCLASSXP); // 绘制函数
WNDPROC wpProc; // 回调函数地址
WNDPROC wpPrev; // 原来的回调函数地址
LPARAM lParam; // 自定义数据
LONG lState; // 状态
LONG lStyle; // 风格
HWND hWnd; // 句柄
}
CLASSXP, *PCLASSXP;
typedef const PCLASSXP PCCLASSXP;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 窗口消息 HOOK 回调函数
LRESULT CALLBACK CXPHookProc(INT iCode, WPARAM wParam, LPARAM lParam);
// 枚举窗口回调函数
BOOL CALLBACK CXPEnumProc(HWND hWnd, LPARAM lParam);
// 设置或取消窗口 ClassXP
BOOL CXPSet(HWND hWnd, BOOL bClassXP);
// 获取窗口类
BOOL CXPGetClass(PCLASSXP pCxp);
// 获取窗口状态
BOOL CXPGetState(PCLASSXP pCxp);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 通用消息处理
LRESULT CXPCommonProc(PCLASSXP pCxp, UINT uMsg, WPARAM wParam, LPARAM lParam);
// 按钮回调函数
LRESULT CALLBACK CXPButtonProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
// 编辑框回调函数
LRESULT CALLBACK CXPEditBoxProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
// 组合框回调函数
LRESULT CALLBACK CXPComboBoxProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
// 旋转控件回调函数
LRESULT CALLBACK CXPSpinBoxProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 绘制按钮
VOID CXPDrawPushButton(PCCLASSXP pCxp);
// 绘制选框
VOID CXPDrawCheckBox(PCCLASSXP pCxp);
// 绘制编辑框
VOID CXPDrawEditBox(PCCLASSXP pCxp);
// 绘制组合框
VOID CXPDrawComboBox(PCCLASSXP pCxp);
// 绘制旋转控件
VOID CXPDrawSpinBox(PCCLASSXP pCxp);
// 绘制滚动条
VOID CXPDrawScrollBar(PCCLASSXP pCxp);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 追踪鼠标移出消息
BOOL CXPTrackMouseLeave(HWND hWnd);
// 绘制箭头
VOID CXPDrawArrow(HDC hDC, UINT x, UINT y, UINT uDir, COLORREF crColor);
// 位图混合
VOID CXPDibBlend(PBYTE pbDst, PBYTE pbSrc, UINT uPixel);
// 位图混合水平扩展
VOID CXPDibBlendHorzExt(PBYTE pbDst, UINT uDstWidth, PBYTE pbSrc, UINT uSrcWidth, UINT uHeight);
// 位图混合垂直扩展
VOID CXPDibBlendVertExt(PBYTE pbDst, UINT uDstHeight, PBYTE pbSrc, UINT uWidth, UINT uSrcHeight);
// 背景混合扩展
VOID CXPDibBlendExt(PBYTE pbDst, UINT uDstWidth, UINT uDstHeight, PBYTE pbSrc, UINT uSrcWidth, UINT uSrcHeight);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -