易IDE视觉库插件开发文档

插件开发


基础数据类型

[toc] > ###PLUGIN_INFO > 数据类型原型 > > // 助手插件信息结构 > typedef struct PLUGIN_INFO > { > DWORD cbSize; // 结构尺寸 > LPCSTR name; // 插件名字 > LPCSTR remarks; // 描述 > LPCSTR version; // 版本 > LPCSTR author; // 作者 > DWORD Versionlimit; // 版本限制 > void* Dependence; // 依赖插件 > > LPCSTR guid; // 插件唯一标识符 > pfn_MenuExt_Command pfnMenuExt_Command; // 菜单被调用事件 > pfn_IDraw_Callback pfnCallback; // 与视觉库通讯的回调函数 > }*LPPLUGIN_INFO; >


> ###RECT_F > 数据类型原型 > > typedef struct RECT_F > { > float left; // 左边 > float top; // 顶边 > float right; // 右边 > float bottom; // 底边 > }*LPRECT_F; > typedef const RECT_F* LPCRECT_F; >


> ###RECTROUNDED_F > 数据类型原型 > > typedef struct RECTROUNDED_F : RECT_F > { > float radiusX; // 圆角 > float radiusY; // 圆角 > }*LPRECTROUNDED_F; > typedef const RECTROUNDED_F* LPCRECTROUNDED_F; >


> ###POINT_F > 数据类型原型 > > typedef struct POINT_F > { > float x; // 坐标点x > float y; // 坐标点y > }*LPPOINT_F; > typedef const POINT_F* LPCPOINT_F; >


> ###ELLIPSE_F > 数据类型原型 > > typedef struct ELLIPSE_F : POINT_F > { > float radiusX; // 半径宽度 > float radiusY; // 半径高度 > }*LPELLIPSE_F; > typedef const ELLIPSE_F* LPCELLIPSE_F; >


> ###LINEPOINT_F > 数据类型原型 > > typedef struct LINEPOINT_F : POINT_F > { > float x1; // 第二个横向坐标 > float y1; // 第二个纵向坐标 > }*LPLINEPOINT_F; > typedef const LINEPOINT_F* LPCLINEPOINT_F; >


> ###EX_IMAGELOCK > 数据类型原型 > > // 图像锁定结构 > typedef struct EX_IMAGELOCK > { > UINT width; // 锁定图像的宽度, 内部使用, 不允许修改 > UINT height; // 锁定图像的高度, 内部使用, 不允许修改 > UINT stride; // 内部使用, 不允许修改 > void* pScan0; // 内部使用, 不允许修改 > void* pLock; // 内部使用, 不允许修改 > }*PEX_IMAGELOCK, * LPEX_IMAGELOCK; >


> ###EWINDOW_MDICHILD > 数据类型原型 > > // MDIClient 窗口句柄结构 > struct EWINDOW_MDICHILD > { > HWND hMDIClient1; // MDI下的第一层窗口 > HWND hMDIClient2; // MDI下的第二层窗口 > HWND hMDIClient3; // MDI下的第三层窗口, 可以根据这个窗口判断是否为起始页或者设计器窗口或者代码区 > HWND hMDIClient4; // MDI下的第四层窗口, 如果是代码区, 这个窗口就是代码窗口 > HWND hVScroll; // 纵向滚动条 > HWND hHScroll; // 横向滚动条 > }; >


> ###BEGIN_END_PAINT_STRUCT > 数据类型原型 > > // 各个组件开始和结束绘画使用的结构 > struct BEGIN_END_PAINT_STRUCT : PAINTSTRUCT > { > RECT rc; // 组件客户区矩形 > int cxClient; // 客户区宽度 > int cyClient; // 客户区高度 > LPVOID pFont; // 内部使用, 不允许修改 > LPVOID hFont; // 内部使用, 不允许修改 > LPVOID md; // 内部使用, 不允许修改 > BOOL isDxRender; // 内部使用, 不允许修改 > LPOBJSTRUCT pData; // 窗口数据 > }; >


IDRAW_STRUCT_WINDOW_ARGUMENT 最低要求版本: v1.2.101


typedef struct IDRAW_STRUCT_WINDOW_ARGUMENT
{
    ARGB                crNormal;       // 正常颜色, ARGB颜色, 为0则不使用
    ARGB                crHot;          // 点燃颜色, ARGB颜色, 为0则不使用
    ARGB                crDown;         // 按下颜色, ARGB颜色, 为0则不使用
    ARGB                crBack;         // 背景颜色, ARGB颜色, 为0则不使用
    ARGB                crBorder;       // 阴影边框颜色, 为0则没有边框, ARGB颜色
    ARGB                crBorder_nf;    // 阴影边框未激活时的颜色, 为0则没有边框, ARGB颜色
    ARGB                crShadow;       // 阴影颜色, ARGB颜色, 为0则不使用阴影
    ARGB                crShadow_nf;    // 阴影未激活时的颜色, ARGB颜色, 为0则不使用阴影

    ARGB                crTitle;        // 标题已激活颜色, ARGB颜色
    ARGB                crTitle_nf;     // 标题未激活颜色, ARGB颜色

    HWND                hWnd;           // 需要处理的窗口
    int                 sysbtnWidth;    // 系统按钮宽度
    int                 sysbtnHeight;   // 系统按钮高度
    BOOL                isSubClass;     // 是否内部子类化该窗口, 为false则外部调用 iDraw_DrawWindowProc 把需要处理的消息传递进来
    BOOL                isUnicode;      // 窗口是否为Unicode窗口, 为true则使用W版函数
    BOOL                isCasualMove;   // 窗口随意移动, 为false则只有在标题栏中才能移动
    BOOL                isDrawIcon;     // 是否绘画图标, 如果不绘画图标, 鼠标在图标位置点击不会出现菜单, 标题也会占用图标的位置
    BOOL                isDrawDefBtn;   // 是否绘画默认的按钮, 如果为true, 则根据窗口风格, 加入系统按钮, 按钮的ID是 SC_ 开头的常量

    int                 nMinWidth;      // 最小窗口宽度
    int                 nMinHeight;     // 最小窗口高度

    LPCANVAS            hCanvas;        // 绘画句柄, 外部提供一个绘画句柄, 如果不提供, 则内部会创建一个
    LPEX_FONT           hFont;          // 绘画标题使用的字体, 如果外部不提供, 内部会创建一个
    LPEX_BRUSH          hbrTextTitle;   // 绘画标题使用的字体, 如果外部不提供, 内部会创建一个
    LPEX_BRUSH          hbrTextTitle_nf; // 绘画标题使用的字体, 如果外部不提供, 内部会创建一个

}*LPIDRAW_STRUCT_WINDOW_ARGUMENT;

IDRAW_STRUCT_DRAWSTRUCT 最低要求版本: v1.2.101

// 绘画的结构
typedef struct IDRAW_STRUCT_DRAWSTRUCT
{
    HWND            hWnd;       // 窗口句柄
    LPCANVAS        hCanvas;    // 画布句柄
    DRAW_STAGE      stage;      // 绘画阶段
    const RECT_F*   rc;         // 绘画的矩形位置
    int             id;         // 绘画系统按钮时使用, 这个表示当前绘画的按钮ID
    STATE           state;      // 状态, 系统按钮使用
    LPARAM          param;      // 项目数值, 绘画事件绑定的项目数值
    LPCWSTR         lpszTitle;  // 绘画标题时使用的标题文本
    LPEX_IMAGE      hIcon;      // 绘画系统图标使用的图标
    LPEX_BRUSH      hbrText;    // 绘画标题使用的画刷

}*LPIDRAW_STRUCT_DRAWSTRUCT;

页面列表

ITEM_HTML