CXPBase.h
资源名称:MiniCA2.rar [点击查看]
上传用户:dengkfang
上传日期:2008-12-30
资源大小:5233k
文件大小:5k
源码类别:
CA认证
开发平台:
Visual C++
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // 预处理
- #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);
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////