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

📄 cxpbase.h

📁 MiniCA V2.0版本源码。《小型CA系统V2.1含源码》发表以来
💻 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 + -