#ifndef lcxmwin32ui2_H_8855937
#define lcxmwin32ui2_H_8855937
#include "核心库.h"
#include <objbase.h>
#include <shlobj.h>
#include <CommCtrl.h>
#pragma comment(lib,"comctl32.lib")
#pragma comment(lib, "Msimg32.lib")
extern "C"{
int WINAPI MessageBoxTimeoutA(IN HWND hWnd, IN LPCSTR lpText, IN LPCSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
int WINAPI MessageBoxTimeoutW(IN HWND hWnd, IN LPCWSTR lpText, IN LPCWSTR lpCaption, IN UINT uType, IN WORD wLanguageId, IN DWORD dwMilliseconds);
};
#ifdef UNICODE
#define MessageBoxTimeout MessageBoxTimeoutW
#else
#define MessageBoxTimeout MessageBoxTimeoutA
#endif













#include "Uxtheme.h"
#pragma comment(lib,"UxTheme.lib")









#include "Gdiplus.h"
#pragma comment(lib, "Gdiplus.lib")
using namespace Gdiplus;
#include "ImageEx.h"










#include <stack>




class 句柄模块{
};
class 字体{
private:
  LOGFONT logfont;
  HFONT hfont;
public:
 int 属性_字体颜色;


   字体();


void   置字体(HWND 参_控件句柄,std::string 参_字体文本行);


HFONT   取句柄();


bool   粗体();


void   粗体(bool 参_值);


bool   斜体();


void   斜体(bool 参_值);


bool   下划线();


void   下划线(bool 参_值);


bool   删除线();


void   删除线(bool 参_值);


int   字体大小();


void   字体大小(const int 参_值);


std::string   字体名称();


void   字体名称(std::string 参_值);


int   字体颜色();


void   字体颜色(int 参_值);


HFONT   选择字体();
};
class 基类{
private:
  bool 是否删自已;
public:
 HWND 窗口句柄;
 bool 属性_允许拖放;
 基类* 父基类;
 std::string 属性_名称;
 long 属性_左边;
 long 属性_顶边;
 long 属性_宽度;
 long 属性_高度;
 std::string 属性_标记;
 std::string 属性_备注;
 bool 属性_禁止;
 bool 属性_可视;
 int 属性_鼠标指针;
 std::string 属性_标题;
 int 属性_背景色;
 std::string 属性_背景图;
 int 属性_布局方式;
 char 属性_自定义类名[256]="MyWindowsClass";
 int 属性_鼠标在控件上的状态=0;
 bool 属性_监听鼠标状态=false;
 bool 属性_已在控件内=false;
 bool 属性_任意移动;
std::vector<HWND> ID对应句柄组;
std::vector<基类*> ID对应基指针;
 int 当前ID数=-1;
 bool( *事件_鼠标左键按下)(int,int,int) =NULL;
 bool( *事件_鼠标左键弹起)(int,int,int) =NULL;
 bool( *事件_鼠标右键按下)(int,int,int) =NULL;
 bool( *事件_鼠标右键弹起)(int,int,int) =NULL;
 bool( *事件_鼠标中键按下)(int,int,int) =NULL;
 bool( *事件_鼠标中键弹起)(int,int,int) =NULL;
 bool( *事件_滚轮滚动)(int,int) =NULL;
 bool( *事件_鼠标位置移动)(int,int,int) =NULL;
 bool( *事件_鼠标双击)(int,int,int) =NULL;
 bool( *事件_时钟)(int,int) =NULL;
 bool( *事件_键盘按下某键)(int,int) =NULL;
 bool( *事件_键盘放开某键)(int,int) =NULL;
 int( *事件_输入字符)(int) =NULL;
 int( *事件_获得焦点)() =NULL;
 int( *事件_失去焦点)() =NULL;
 bool( *事件_文件拖入)(std::string) =NULL;
 void ( *事件_尺寸改变)() =NULL;
 void ( *事件_位置改变)() =NULL;
 HFONT hfont;
 字体 属性_字体;
 HBRUSH 内部画刷;
 bool 属性_自动重绘=true;


   基类();


   ~基类();


virtual LRESULT   消息循环接口(UINT 参_消息类型,WPARAM 参_消息值一,LPARAM 参_消息值二,HWND 参_窗口);


virtual void   消息处理_自绘控件(WPARAM wParam,LPARAM lParam);


virtual void   消息处理_控件颜色(WPARAM wParam,LPARAM lParam);


virtual void   消息处理_控件命令(WPARAM wParam,LPARAM lParam);


virtual void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);


virtual bool   通用事件处理(UINT 参_消息类型,WPARAM 参_消息值一,LPARAM 参_消息值二);


static LRESULT __stdcall    类回调(HWND 参_窗口句柄,int umsg,int wparam,int lparam,void * dID,void * asdfsasf);


static LRESULT WINAPI  内部回调(HWND 参_窗口句柄,UINT 参_消息类型,WPARAM 参_消息值一,LPARAM 参_消息值二);


bool   注册窗口类(HINSTANCE 参_实例句柄=GetModuleHandle(0),HICON 参_图标句柄=NULL,int 参_类风格=CS_DBLCLKS);

private:

WNDPROC  子类化(LRESULT(WINAPI *参_66948171)(HWND,UINT,WPARAM,LPARAM));


WNDPROC  超类化(std::string 原控件类名,std::string 新自定类名,LRESULT(WINAPI *自定消息处理)(HWND,UINT,WPARAM,LPARAM));

public:

bool   是否已创建();


virtual void   尺寸变动执行();


HWND   取窗口句柄();


int   左边();


void   左边(int 参_值);


int   顶边();


void   顶边(int 参_值);


int   宽度();


void   宽度(int 参_值);


int   高度();


void   高度(int 参_值);


void   可视(bool 参_真假);


bool   可视();


bool   禁止(bool 参_真假);


bool   禁止();


void   字体大小(int 参_大小);


int   字体大小();


std::string   字体名称();


void   字体名称(char * 参_字体名);


void   字体颜色(int 参_颜色);


int   字体颜色();


virtual std::string   标题();


virtual void   标题(std::string 参_新标题);


void   置位置大小(int 参_左,bool 参_左_isblank,int 参_顶,bool 参_顶_isblank,int 参_宽,bool 参_宽_isblank,int 参_高,bool 参_高_isblank,bool 立即刷新,bool 立即刷新_isblank);


Rect   取位置大小();


void   调整层次(HWND 参_层级);


void   禁止重画();


void   允许重画();


void   重画(bool 参_擦除背景=true);


void   部分重画(RECT 参_区域,bool 参_擦除背景=false);


void   刷新显示();


virtual int   背景色();


virtual void   背景色(int 参_RGB颜色);


virtual bool   任意移动();


virtual void   任意移动(bool 参_能否);


int   生成子组件ID(基类 * 参_115845859);


HWND   取出子组件ID对应句柄(int 参_ID);


void   保存子组件ID对应句柄(int 参_组件ID,HWND 参_句柄,基类 * 参_基指针=0);


基类*   取出子组件ID的基类指针(int 参_组件ID);


void   添加风格(int 参_新风格,bool 参_新风格_isblank,int 参_新扩展风格,bool 参_新扩展风格_isblank);


void   删除风格(int 参_某风格,bool 参_某风格_isblank,int 参_某扩展风格,bool 参_某扩展风格_isblank);


bool   开始时钟(int 参_时钟周期,int 参_时钟ID=1);


bool   停止时钟(int 参_时钟ID=1);


void   画三角箭头(HANDLE hDC,RECT rc,bool 是否下箭头);
};
class 图像列表 : public 基类{
public:
 HANDLE 句柄=0;
private:
  int S宽度;
  int S高度;
  int S位数;

public:

   图像列表();

private:

void  销毁之前创建的(void);

public:

void   清空();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=16,int 高度=16,char * 标题="图片组",int 边框=BS_PUSHBUTTON,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false,int 位数=32);


bool   创建自位图文件(std::string 参_文件名,int 参_宽度,int 参_图标数,int 参_掩码色=-1);


int   加入图标(std::string 参_文件名);


int   加入位图(std::string 参_文件名);


int   取图片数量();


void   置背景色(int 参_颜色);


int   取图标(int 参_索引,int 参_标识=0);
};
class 树型框 : public 基类{
private:
  LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;
  int 三角箭头色;
  int 选中文本色;
  int 选中背景色;
  bool 允许自绘=false;
public:
 void ( *事件_单击项目)(HTREEITEM,HTREEITEM) =NULL;
 void ( *事件_选中项目)() =NULL;
 void ( *事件_双击项目)() =NULL;
 void ( *事件_右击项目)() =NULL;
 void ( *事件_将被展开)() =NULL;
 void ( *事件_将被收缩)() =NULL;
 HANDLE 开始拖动项目句柄=0;


   树型框();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="SysTreeView32",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=54,char * 标题="",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 行底颜色=0,bool 可视=true,bool 禁止=false,int 点燃颜色=0,int 选中颜色=0,bool 有加减按钮=true,bool 有复选框=false,bool 有连接线=true,bool 有根部线=true,bool 始终显示选中=true,bool 显示整行选中=true,bool 允许拖动=false,bool 允许热点跟踪=false,bool 允许编辑=false,bool 禁止弹出提示=false,bool 允许单击收展=false,int 行高=14,图像列表 * 图片组_=NULL);

private:

void  方法自绘项目(void);

public:

void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


HTREEITEM   加入项目(HTREEITEM 父项句柄,bool 父项句柄_isblank,std::string 项目文本,int 图片索引,bool 图片索引_isblank,int 选择图片索引,bool 选择图片索引_isblank,int 项目数值,bool 项目数值_isblank,bool 是否加粗,bool 是否加粗_isblank,int 检查框状态,bool 检查框状态_isblank,bool 第一个项目,bool 第一个项目_isblank);


HTREEITEM   插入项目(HTREEITEM 父项句柄,bool 父项句柄_isblank,HTREEITEM 前项句柄,bool 前项句柄_isblank,std::string 项目文本,int 图片索引,bool 图片索引_isblank,int 选择图片索引,bool 选择图片索引_isblank,int 项目数值,bool 项目数值_isblank,bool 是否加粗,bool 是否加粗_isblank,int 检查框状态,bool 检查框状态_isblank);


void   状态图片组(图像列表 * 参_图组);


void   正常图片组(图像列表 * 参_图组);


HANDLE   创建拖放图片组(HTREEITEM 参_项目结点);


int   取项目数();


int   取缩进层次(HTREEITEM 参_当前结点);


bool   是否有子项(HTREEITEM 参_结点句柄);


int   取子项数(HTREEITEM 参_结点句柄);


bool   加粗(HTREEITEM 参_结点句柄);


bool   取消加粗(HTREEITEM 参_结点句柄);


HTREEITEM   取父项目(HTREEITEM 参_结点);


HTREEITEM   取第一个子项目(HTREEITEM 参_结点);


HTREEITEM   取下一成员项目(HTREEITEM 参_结点);


HTREEITEM   取现行选中项();


std::string   取项目文本(HTREEITEM 参_结点);


void   置现行选中项(HTREEITEM 参_项目结点);


int   取项目数值(HTREEITEM 参_结点);


bool   置项目文本(HTREEITEM 参_结点,char * 参_文本);


bool   置项目数值(HTREEITEM 参_结点,int 参_值);


void   置选中状态(HTREEITEM 参_结点,bool 参_是否选中);


bool   取选中状态(HTREEITEM 参_结点);


HTREEITEM   取鼠标处命中项目();


virtual int   背景色();


virtual void   背景色(int 参_RGB颜色);


virtual int   文本色();


virtual void   文本色(int 参_RGB颜色);


virtual int   连线色();


virtual void   连线色(int 参_RGB颜色);


virtual int   项目高度();


virtual void   项目高度(int 参_行高);


void   项目滚到(HTREEITEM 参_索引=0);


bool   是否已扩展(HTREEITEM 参_结点);


void   收缩(HTREEITEM 参_结点);


void   扩展(HTREEITEM 参_结点);


void   清空();


void   删除项目(HTREEITEM 参_结点句柄);


std::vector<HTREEITEM>   取所有子项目(HTREEITEM 参_父项目);


HTREEITEM   复制结点树(HTREEITEM 参_移动结点,HTREEITEM 参_目标结点,int 上下或之中=0,bool 不复制子项=false,bool 仅复制子项=false);


void   取项目结点属性(HTREEITEM 参_项目句柄,TVITEMA &参_传入变量);


HTREEITEM   插入项目结点属性(HTREEITEM 参_位置结点,TVITEMA &参_属性变量,int 参_上下之中=0);


std::vector<HTREEITEM>   取所有选中项目();


void   删除所有选中项目();


void   行高(int 参_值);


int   行高();
};
class 自绘状态{
};
class 按钮 : public 基类{
public:
 LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;
 int 属性_正常颜色;
 int 属性_选中颜色;
 int 属性_点燃颜色;
 int 属性_风格样式_正常;
 int 属性_风格样式_按下;
 int 属性_风格样式_点燃;
 int 属性_边框外观;
 void ( *事件_被单击)() =NULL;
 int 属性_扩展风格=0;


   按钮();


virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="按钮",int 边框=BS_PUSHBUTTON,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false,int 点燃颜色=0,int 选中颜色=0,bool 任意移动=false);


virtual LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


virtual void   消息处理_自绘控件(WPARAM wParam,LPARAM lParam);


virtual void   消息处理_控件颜色(WPARAM wParam,LPARAM lParam);


virtual void   消息处理_控件命令(WPARAM wParam,LPARAM lParam);


virtual void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);

private:

int  自绘按钮(DRAWITEMSTRUCT * 参_自绘结构);

public:

int   背景色();


void   背景色(int 参_RGB颜色);


int   点燃背景色();


void   点燃背景色(int 参_RGB颜色);


int   选中背景色();


void   选中背景色(int 参_RGB颜色);
};
class 分组框 : public 按钮{
private:
  bool 属性_标题透明背景=false;

public:

virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=50,int 高度=30,char * 标题="分组框",int 边框=BS_DEFPUSHBUTTON,int 背景颜色=0,std::string 字体="默认",int 字体底部颜色=0,bool 可视=true,bool 禁止=false,bool 透明背景=false,bool 透明标题背景=false);


virtual LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND kc);
};
class 时钟{
private:
  int 属性_周期时间;
public:
 void ( *事件_周期处理)() =NULL;
private:
  int 我的标识;
  HWND 父窗口句柄;

public:

   时钟();


void   周期时间(int 参_毫秒时间);


int   周期时间();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=16,int 高度=16,char * 标题="时钟",int 边框=BS_PUSHBUTTON,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false,int 时钟周期=0);
};
class 编辑框 : public 基类{
private:
  LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;
  int 属性_字底颜色=0;
public:
 void ( *事件_内容改变)() =NULL;
 void ( *事件_字符输入)() =NULL;


   编辑框();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="EDIT",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="编辑框",int 边框=WS_EX_CLIENTEDGE,int 背景颜色=0,std::string 字体="系统默认",int 字底颜色=0,bool 可视=true,bool 禁止=false,bool 允许多行=false,int 文本对齐=ES_LEFT,bool 密码输入=false);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


virtual void   消息处理_控件命令(WPARAM wParam,LPARAM lParam);


std::string   内容();


void   内容(char * 参_文本内容);


std::string   标题();


void   标题(char * 参_32815625);
};
class myrect{
public:
 int 左边;
 int 顶边;
 int 右边;
 int 底边;
};
class 窗口 : public 基类{
private:
  bool 是主窗口;
  bool 是模态窗口;
  bool 鼠标按下中;
  int 属性_边框样式;
  int 属性_扩展样式;
  bool 属性_总在最前;
  bool 属性_保持激活;
  bool 属性_任务栏显示;
  bool 属性_顶层不激活;
  bool 属性_居中显示;
public:
 void ( *事件_创建完毕)() =NULL;
 void ( *事件_被激活)() =NULL;
 void ( *事件_取消激活)() =NULL;
 void ( *事件_被显示)() =NULL;
 void ( *事件_将被销毁)() =NULL;
 void ( *事件_窗口重绘)() =NULL;
 bool( *事件_拦截回调)(int,int,int) =NULL;
 void ( *事件_载入系统菜单)(int) =NULL;
private:
  int 已画背景色;
  HANDLE 拖放图片组句柄;
  HANDLE 拖放控件句柄;
  基类* 拖放控件基指针;
  HTREEITEM 拖放控件起始项;
public:
std::vector<基类*> 尺寸变化时处理的子对象;
 HWND 窗口工具条=0;
 HWND 窗口状态条=0;


   窗口();


   ~窗口();


void   初始化控件(窗口 * 父窗口=NULL,std::string 窗口类名="",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=400,int 高度=300,char * 标题="",int 边框=WS_OVERLAPPEDWINDOW,int 背景颜色=0,std::string 字体="宋体_16_0",int 字体颜色=0,bool 可视=true,bool 禁止=false,bool 停留焦点=true,int 停留焦点_焦点顺序=0,std::string 底图="",std::string 图标="",bool 控制按钮=true,bool 控制按钮_最大化=false,bool 控制按钮_最小化=true,int 位置=1,bool 任意移动=true,bool 总在最前=false,bool 任务栏显示=true,bool 保持标题激活=false,bool 允许文件拖放=false,bool 主菜单=false);


HWND   载入(窗口 * 父窗口=NULL,bool 是否对话框方式=false,bool 是否嵌入父窗口=false);


void   刷新显示();


virtual void   内部初始化组件();


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


int   背景色();


void   背景色(int 参_颜色RGB);


bool   总在最前();


void   总在最前(bool 参_是否);


RECT   取客户区坐标();


bool   任务栏显示();


void   任务栏显示(bool bShow);


bool   保持标题激活();


void   保持标题激活(bool 参_是否);
};
class 超列表项插入信息{
public:
std::vector<std::string> 标题;
std::vector<int> 图片索引;
 int 状态图索引;
 int 表项数值;
 int 缩进数目;
 int 分组ID;
};
class 超级列表框 : public 基类{
private:
  LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;
public:
 void ( *事件_复选框改变)() =NULL;
 void ( *事件_表头单击)() =NULL;
 void ( *事件_列表点击)() =NULL;
 void ( *事件_选中项目)() =NULL;
 void ( *事件_双击项目)() =NULL;
 void ( *事件_开始编辑)() =NULL;
 void ( *事件_结束编辑)() =NULL;


   超级列表框();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="SysListView32",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=54,char * 标题="",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 行底颜色=0,bool 可视=true,bool 禁止=false,int 点燃颜色=0,int 选中颜色=0,bool 任意移动=false,int 行间距_=0,int 现行选中项_=-1,int 列表样式=LVS_REPORT,图像列表 * 表项图片组大=NULL,图像列表 * 表项图片组小=NULL,图像列表 * 表头图片组=NULL,图像列表 * 状态图片组=NULL,std::string 报表列="",std::string 报表项="",bool 无表头=true,bool 表头可单击=true,bool 显示表格线=true,bool 表列可拖动=true,bool 显示检查框=false,bool 整行选择=true,bool 允许编辑=false,bool 禁止换行=false,bool 禁止多选=false,int 排序方式=0);


int   取编辑框句柄();


std::string   取编辑框内容();


virtual void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


int   取表项数();


int   取列数();


int   插入列(int 插入位置,bool 插入位置_isblank,std::string 标题,bool 标题_isblank,int 列宽,bool 列宽_isblank,int 对齐方式,bool 对齐方式_isblank,int 图片索引,bool 图片索引_isblank,bool 图片是否居右,bool 图片是否居右_isblank);


int   插入表项(int 插入位置,bool 插入位置_isblank,std::string 标题,bool 标题_isblank,int 图片索引,bool 图片索引_isblank,int 状态图片索引,bool 状态图片索引_isblank,int 缩进数目,bool 缩进数目_isblank,int 项目数值,bool 项目数值_isblank,int 分组ID,bool 分组ID_isblank);


bool   插入表项信息(超列表项插入信息 参_起列表项信息);


void   图片组状态(图像列表 * 参_图组);


void   图片组小型(图像列表 * 参_图组);


void   图片组大型(图像列表 * 参_图组);


void   图片组表头(图像列表 * 参_图组);


bool   置标题(int 参_项索引,int 参_列索引,std::string 参_标题内容);


std::string   取标题(int 参_项索引,int 参_列索引);


std::string   取列标题(int 参_列索引);


bool   置列标题(int 参_列索引,std::string 参_列标题);


bool   置列宽(int 参_列索引,int 参_宽度=-1);


int   取列宽(int 参_列索引);


void   列数(int 参_数量);


int   列数();


bool   删除列(int 参_列索引);


bool   全部删除();


bool   选中表项(int 参_项索引);


bool   取消表项选中(int 参_项索引);


void   现行选中项(int 参_索引);


int   现行选中项();


int   取图片(int 参_项索引,int 参_列索引=0);


bool   置图片(int 参_项索引,int 参_列索引,bool 参_列索引_isblank,int 参_图索引=-1);


virtual int   背景色();


virtual void   背景色(int 参_RGB颜色);


virtual int   文本色();


virtual void   文本色(int 参_RGB颜色);


virtual int   文本背景色();


virtual void   文本背景色(int 参_RGB颜色);


bool   是否检查框选中(int 参_行号);


bool   选中检查框(int 参_行号);
};
class 列表框 : public 基类{
private:
  LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;
public:
 void ( *事件_项目选择)() =NULL;
 void ( *事件_取消选择)() =NULL;
 void ( *事件_双击选择)() =NULL;
private:
  HWND 组件句柄;
  int 组件ID;
public:
 int 属性_行间距;
 bool 属性_多选;


   列表框();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="LISTBOX",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=54,char * 标题="",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 行底颜色=0,bool 可视=true,bool 禁止=false,int 点燃颜色=0,int 选中颜色=0,bool 任意移动=false,int 行间距_=0,int 现行选中项_=-1,bool 允许多选_=false,bool 允许多列_=false);


void   消息处理_控件命令(WPARAM wParam,LPARAM l);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


int   取项目数量();


int   加入项目(std::string 参_内容,int 参_数值,bool 参_数值_isblank);


int   加入项目(int 参_插入位,bool 参_插入位_isblank,char * 参_内容,bool 参_内容_isblank,int 参_数值,bool 参_数值_isblank);


bool   删除项目(int 参_索引);


bool   清空();


void   现行选中项(int 参_索引);


int   现行选中项();


int   取项目数值(int 参_索引);


std::string   取项目文本(int 参_索引);


bool   项目滚到(int 参_索引=0);


bool   允许多选();


void   允许多选(bool 参_是否);


std::vector<int>   取当前多选索引数组();


int   取多选项目数量();
};
class 选择框 : public 按钮{
private:
  LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;

public:

HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=9,char * 标题="选择框",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false);

private:

LRESULT  消息循环接口ss(UINT message,WPARAM wParam,LPARAM lParam);

public:

bool   选中();


bool   选中(bool 参_是否选中);
};
class 超级按钮 : public 按钮{
public:
 int 属性_点然图句柄=0;
 int 属性_按下图句柄=0;
 int 属性_普通图句柄=0;


virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="按钮",int 边框=0,int 背景颜色=0,std::string 字体="宋体_16_0",int 字体颜色=0,bool 可视=true,bool 禁止=false,int 点燃颜色=0,int 选中颜色=0,bool 任意移动=false,std::string 普通图_="",std::string 点然图_="",std::string 按下图_="");


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


virtual void   消息处理_自绘控件(WPARAM wParam,LPARAM lParam);


int   自绘图形(DRAWITEMSTRUCT * 参_自绘结构);


int   点燃图(std::string 参_文件名);


int   按下图(std::string 参_文件名);


int   普通图(std::string 参_文件名);
};
class 图形按钮 : public 按钮{

public:

virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="图形按钮",int 边框=0,int 背景图片=0,std::string 字体="宋体_16_0",int 字体颜色=0,bool 可视=true,bool 禁止=false,int 点燃图片=0,int 按下图片=0,bool 任意移动=false);
};
class 单选框 : public 基类{
public:
 LRESULT(WINAPI *原处理)(HWND,UINT,WPARAM,LPARAM) =NULL;
 int 属性_边框外观;
 void ( *事件_被单击)() =NULL;
 int 属性_扩展风格=0;


   单选框();


virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=9,char * 标题="单选框",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false,int 点燃颜色=0,int 选中颜色=0,bool 任意移动=false);


void   消息处理_控件命令(WPARAM wParam,LPARAM lParam);


virtual LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


bool   选中();


bool   选中(bool 参_是否);
};
class 文本标签 : public 基类{
private:
  int 属性_边框外观;
public:
 void ( *事件_被单击)() =NULL;
 void ( *事件_被双击)() =NULL;


   文本标签();


virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="STATIC",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=9,char * 标题="文本标签",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false,int 文本对齐方式=0,bool 是否自动折行=true);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


int   背景色();


void   背景色(int 参_颜色RGB);
};
class 外形框 : public 文本标签{
private:
  int 线条宽=0;
  int 线条色=0;
  int 线条型=0;
  bool 无边框=false;

public:

virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="STATIC",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=50,int 高度=30,char * 标题="文本标签",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false,int 线型=PS_SOLID,int 线宽=1,int 线条颜色=0);


virtual LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);
};
class 图片框 : public 文本标签{

public:

virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="STATIC",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=50,int 高度=30,char * 标题="图片框",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false);
};
class 图标 : public 文本标签{

public:

virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="STATIC",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=50,int 高度=30,char * 标题="画板",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false);
};
class 弹出菜单{
private:
  int 菜单句柄;
public:
 int 父窗句柄;
 bool( *事件_点击菜单项)(int,std::string) =NULL;


   弹出菜单();


HWND   新建(窗口 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=400,int 高度=300,char * 标题="",int 边框=0,int 背景颜色=65535,std::string 字体="宋体_16_0",int 字体颜色=0,bool 可视=true,bool 禁止=false,std::string 菜单数据="");


int   取句柄();


void   添加菜单项(int 参_句柄,std::vector<std::string> 参_数据);


void   弹出();


std::vector<std::string>   分割文本_匹配符号对(std::string 参_待分割文本,std::string 参_分割符号,std::string 参_左符号,std::string 参_右符号);
};
class 主菜单类{
private:
  int 菜单句柄;
public:
 int 父窗句柄;
 bool( *事件_点击菜单项)(int,std::string) =NULL;


   主菜单类();


HWND   新建(窗口 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=400,int 高度=300,char * 标题="",int 边框=0,int 背景颜色=65535,std::string 字体="宋体_16_0",int 字体颜色=0,bool 可视=true,bool 禁止=false,std::string 菜单数据="");


bool   使用RC菜单资源(int 参_菜单资源号);


   ~主菜单类();


void   加入弹出菜单(弹出菜单 &参_子菜单,char * 参_菜单名称);


void   置窗口(int 窗句柄);


void   绑定系统菜单(int 窗句柄);
};
class 选择夹 : public 基类{
private:
  图像列表* 图片组属性;
public:
 void ( *事件_子夹将改变)() =NULL;
 void ( *事件_子夹被选中)() =NULL;


   选择夹();


HWND   新建(窗口 * 父窗口=NULL,std::string 组件类名="SysTabControl32",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=54,char * 标题="",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 行底颜色=0,bool 可视=true,bool 禁止=false,int 点燃颜色=0,int 选中颜色=0,bool 任意移动=false,int 行间距_=0,int 现行选中项_=-1,图像列表 * 图片组_=NULL);


virtual void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);


LRESULT   消息循环接口(UINT32 uMsg,WPARAM wParam,LPARAM lParam,HWND ck);


bool   插入子夹(int 参_插入位置索引=-1,char * 参_标题="",int 参_图标索引=-1,int 参_值=0);


int   当前子夹();


int   取子夹数();


int   取子夹行数();


RECT   取子夹矩形(int 参_子夹索引);


std::string   取子夹名称(int 参_子夹索引);


bool   置子夹名称(int 参_子夹索引,std::string 参_子夹名);


void   图片组(图像列表 * 参_图片组);


图像列表*   图片组();


bool   置子夹图片(int 参_子夹索引,int 参_图片索引);
};
class GP操作类{
private:
  GdiplusStartupInput gdiplusStartupInput;
  ULONG_PTR gdiplusToken;

public:

   GP操作类();


   ~GP操作类();
};
class 工具条 : public 基类{
public:
 LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;
private:
  bool 已加载位图=false;
  int 自身ID;
public:
 void ( *事件_被单击)(int) =NULL;


   工具条();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="ToolbarWindow32",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="工具条",int 边框=0,int 背景颜色=0,std::string 字体="系统默认",int 位置对齐=CCS_NOPARENTALIGN,bool 可视=true,bool 禁止=false,bool 允许多行=true,图像列表 * 图片组_=NULL,图像列表 * 热点图片组=NULL,bool 是否垂直布局=false);


virtual void   消息处理_控件命令(WPARAM wParam,LPARAM lParam);


virtual void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


void   插入按钮(int 参_按钮类型=TBSTYLE_BUTTON,int 参_状态=TBSTATE_ENABLED,char * 参_标题="",int 参_图片索引或是分割条宽度=-1,int 参_位置=-1,char * 参_提示文本="");


int   取按钮数量();


void   普通图片组(图像列表 * 参_图片组);


void   禁止图片组(图像列表 * 参_图片组);


void   点燃图片组(图像列表 * 参_图片组);


void   自动大小();


bool   置按钮数值(int 参_索引,int 参_数值);


int   取按钮数值(int 参_索引);


void   加入标准按钮(std::vector<int> 参_标准按钮ID,int 参_图标类型);

private:

void  加载标准位图(int 参_图标类型=IDB_STD_SMALL_COLOR);
};
class 状态栏 : public 基类{
private:
  LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;
  bool 已加载位图=false;
  int 自身ID;
public:
 void ( *事件_被单击)(int,int,int) =NULL;
 void ( *事件_被双击)(int,int,int) =NULL;
 void ( *事件_被右击)(int,int,int) =NULL;
private:
  图像列表* 内部图片组;

public:

   状态栏();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="msctls_statusbar32",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="状态条",int 边框=0,int 背景颜色=0,std::string 字体="系统默认",int 位置对齐=CCS_NOPARENTALIGN,bool 可视=true,bool 禁止=false,bool 尺寸可调=false,bool 显示提示=true,图像列表 * 图片组=NULL);


void   背景色(int 参数_颜色值);

private:

void  尺寸变动执行(void);

public:

void   通知码处理接口(WPARAM wParam);


virtual void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


int   取栏目数();


std::vector<int>   取栏目数组();


int   加入栏目(char * 参_栏目内容,bool 参_栏目内容_isblank,int 参_栏目宽,bool 参_栏目宽_isblank,char * 参_提示文本,bool 参_提示文本_isblank,int 参_图标ID,bool 参_图标ID_isblank);


std::string   取栏目内容(int 参_栏目号);


void   置栏目内容(int 参_栏目号,char * 参_栏目内容);


void   置栏目提示文本(int 参_栏目号,char * 参_提示文本);


void   置栏目图标(int 参_栏目号,int 参_图标ID);
};
class 工具栏 : public 基类{
public:
 void ( *事件_高度变化)() =NULL;
 void ( *事件_布局变化)() =NULL;
 void ( *事件_被单击)() =NULL;


   工具栏();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="RebarWindow32",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="工具栏",int 边框=0,int 背景颜色=0,std::string 字体="系统默认",int 位置对齐=CCS_NOPARENTALIGN,bool 可视=true,bool 禁止=false,bool 允许多行=true,图像列表 * 图片组_=NULL,图像列表 * 热点图片组=NULL,bool 是否垂直布局=false);

private:

void  尺寸变动执行(void);

public:

bool   插入栏目(int 参_位置索引,bool 参_位置索引_isblank,基类 * 参_控件,bool 参_控件_isblank,int 参_栏目ID,bool 参_栏目ID_isblank,char * 参_标题,bool 参_标题_isblank,int 参_栏目风格,bool 参_栏目风格_isblank,int 参_栏目宽度,bool 参_栏目宽度_isblank);


virtual void   消息处理_控件命令(WPARAM wParam,LPARAM lParam);


virtual void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


void   指定贴边(HWND hWnd,int g_wSide);


bool   置图片组(图像列表 * 参_图片组);


void   文本色(int 参_颜色);


void   背景色(int 参_颜色);
};
class 组合框 : public 基类{
private:
  LRESULT(WINAPI *原处理函数)(HWND,UINT,WPARAM,LPARAM) =NULL;
  int 属性_字底颜色=0;
  HWND 组件句柄;
public:
 void ( *事件_选择项目)() =NULL;
 void ( *事件_内容改变)() =NULL;
 void ( *事件_双击选择)() =NULL;
 void ( *事件_将弹出列表)() =NULL;
 void ( *事件_列表被关闭)() =NULL;
 void ( *事件_字符输入)() =NULL;


   组合框();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="COMBOBOX",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="组合框",int 边框=WS_EX_CLIENTEDGE,int 背景颜色=0,std::string 字体="系统默认",int 字底颜色=0,bool 可视=true,bool 禁止=false,int 类型=2,int 现行选中项_=-1);


virtual LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


void   消息处理_控件命令(WPARAM wParam,LPARAM lparam);


int   取项目数量();


int   加入项目(std::string 参_内容,int 参_数值,bool 参_数值_isblank);


int   加入项目(int 参_插入位,bool 参_插入位_isblank,char * 参_内容,bool 参_内容_isblank,int 参_数值,bool 参_数值_isblank);


bool   删除项目(int 参_索引);


bool   清空();


void   现行选中项(int 参_索引);


int   现行选中项();


int   取项目数值(int 参_索引);


std::string   取项目文本(int 参_索引);


bool   项目滚到(int 参_索引=0);


std::string   内容();


void   内容(char * 参_文本内容);
};
class 面板 : public 基类{
private:
  int 成员变量_49929343;

public:

virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="STATIC",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=50,int 高度=30,char * 标题="",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 字体颜色=0,bool 可视=true,bool 禁止=false);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);
};
class 分隔条 : public 基类{

public:

virtual HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="BUTTON",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=15,char * 标题="分隔条",int 边框=BS_PUSHBUTTON,int 背景颜色=0,bool 可视=true,bool 禁止=false,bool 方向=false);
};
class 虚拟列表 : public 基类{
public:
 int( *事件_显示单元格内容)(int,int,char *,int) =NULL;


   虚拟列表();


HWND   新建(基类 * 父窗口=NULL,std::string 组件类名="SysListView32",char * 名称="",char * 备注="",char * 标记="",int 左边=0,int 顶边=0,int 宽度=54,int 高度=54,char * 标题="",int 边框=0,int 背景颜色=0,std::string 字体="默认",int 行底颜色=0,bool 可视=true,bool 禁止=false,int 点燃颜色=0,int 选中颜色=0,bool 任意移动=false,int 行间距_=0,int 现行选中项_=-1,图像列表 * 表项图片组=NULL,图像列表 * 表头图片组=NULL,图像列表 * 状态图片组=NULL,std::string 报表列="",std::string 报表项="",bool 无表头=true,bool 表头可单击=true,bool 显示表格线=true,bool 表列可拖动=true,bool 显示检查框=false,bool 整行选择=true,bool 允许编辑=false,int 列表行数=0);


LRESULT   消息循环接口(UINT message,WPARAM wParam,LPARAM lParam,HWND ck);


virtual void   消息处理_控件通知(WPARAM wParam,LPARAM lParam);

private:

void  尺寸变动执行(void);

public:

bool   InitListView(HWND hwndListView,int xs);


void   ResizeListView(HWND hwndListView,HWND hwndParent);


int   通知处理(HWND hWnd,LPARAM lParam);
};
long long  大整数转长整数(LARGE_INTEGER 参_36956828);
LARGE_INTEGER  长整数到大整数(long long 参_37091250);
ULARGE_INTEGER  长整数到大正整数(long long 参_37091250);
std::string  W2A(std::wstring 参_28018640);
int  信息框(std::string 内容,int 按钮=0,std::string 标题="",窗口 &所在窗口=窗口(),int 延时关闭=0);
int  消息循环等待(void);
int  消息循环处理(void);
bool  排序小到大(int 参_X,int 参_Y);
bool  函数类型_文本参(std::string 文本组);
bool  函数类型_鼠标(int 横,int 纵,int 功能键状态);
bool  函数类型_时钟(int 参_窗口句柄,int 参_时钟ID);
bool  函数类型_滚动(int 滚动距离,int 功能键状态);
void  函数类型_单击子按钮(int 子按钮索引);
bool  函数类型_按键(int 键代码,int 功能键状态);
int  函数类型_输入字符(int 字符代码);
int  函数类型_无参(void);
void  函数类型_无参无返(void);
void  函数类型_一参_整数型(int 参_值);
int  函数类型_两参_整数(int 键代码,int 功能键状态);
bool  函数类型_两参_整文(int 参_索引,std::string 参_内容);
bool  函数类型_消息回调(int 参_消息号,int 参_参一,int 参_参二);
void  函数类型_变换树结点(HTREEITEM 参_之前选中,HTREEITEM 参_当前选中);
void  XP风格组件(void);
void  ATL容器(void);
void  关闭XP风格(void);
void  关闭控件XP风格(HWND 参_控件句柄);
void  启用树型框新风格(HWND 参_树型框句柄);
extern  GP操作类 GP环境初始化及最终的释放对象;
std::wstring  A2W(std::string 参_文本);
std::wstring  A2W(char * 参_字符串);
int  文件载入内存(char * 参_文件名);
IStream *  内存流创建自文件(char * 参_文件名);
IStream *  从指定内存区域创建流(int 参_内存大小);
long long  取内存流内容大小(IStream * 参_内存流);
long long  取内存流某处到所处位置大小(IStream * 参_内存流,long long 参_指定位);
void  函数类型_状态栏单击(int 参_栏目索引,int 参_鼠标横,int 参_鼠标纵);
int  创建酷栏(HWND hWndOwner,int clid);

#endif