易IDE视觉库插件开发文档

插件开发


基础数据类型

<p>[toc]</p> <blockquote> <h3>PLUGIN_INFO</h3> <p>数据类型原型</p> <pre><code>// 助手插件信息结构 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;</code></pre> </blockquote> <hr /> <blockquote> <h3>RECT_F</h3> <p>数据类型原型</p> <pre><code>typedef struct RECT_F { float left; // 左边 float top; // 顶边 float right; // 右边 float bottom; // 底边 }*LPRECT_F; typedef const RECT_F* LPCRECT_F;</code></pre> </blockquote> <hr /> <blockquote> <h3>RECTROUNDED_F</h3> <p>数据类型原型</p> <pre><code>typedef struct RECTROUNDED_F : RECT_F { float radiusX; // 圆角 float radiusY; // 圆角 }*LPRECTROUNDED_F; typedef const RECTROUNDED_F* LPCRECTROUNDED_F;</code></pre> </blockquote> <hr /> <blockquote> <h3>POINT_F</h3> <p>数据类型原型</p> <pre><code>typedef struct POINT_F { float x; // 坐标点x float y; // 坐标点y }*LPPOINT_F; typedef const POINT_F* LPCPOINT_F;</code></pre> </blockquote> <hr /> <blockquote> <h3>ELLIPSE_F</h3> <p>数据类型原型</p> <pre><code>typedef struct ELLIPSE_F : POINT_F { float radiusX; // 半径宽度 float radiusY; // 半径高度 }*LPELLIPSE_F; typedef const ELLIPSE_F* LPCELLIPSE_F;</code></pre> </blockquote> <hr /> <blockquote> <h3>LINEPOINT_F</h3> <p>数据类型原型</p> <pre><code>typedef struct LINEPOINT_F : POINT_F { float x1; // 第二个横向坐标 float y1; // 第二个纵向坐标 }*LPLINEPOINT_F; typedef const LINEPOINT_F* LPCLINEPOINT_F;</code></pre> </blockquote> <hr /> <blockquote> <h3>EX_IMAGELOCK</h3> <p>数据类型原型</p> <pre><code>// 图像锁定结构 typedef struct EX_IMAGELOCK { UINT width; // 锁定图像的宽度, 内部使用, 不允许修改 UINT height; // 锁定图像的高度, 内部使用, 不允许修改 UINT stride; // 内部使用, 不允许修改 void* pScan0; // 内部使用, 不允许修改 void* pLock; // 内部使用, 不允许修改 }*PEX_IMAGELOCK, * LPEX_IMAGELOCK;</code></pre> </blockquote> <hr /> <blockquote> <h3>EWINDOW_MDICHILD</h3> <p>数据类型原型</p> <pre><code>// MDIClient 窗口句柄结构 struct EWINDOW_MDICHILD { HWND hMDIClient1; // MDI下的第一层窗口 HWND hMDIClient2; // MDI下的第二层窗口 HWND hMDIClient3; // MDI下的第三层窗口, 可以根据这个窗口判断是否为起始页或者设计器窗口或者代码区 HWND hMDIClient4; // MDI下的第四层窗口, 如果是代码区, 这个窗口就是代码窗口 HWND hVScroll; // 纵向滚动条 HWND hHScroll; // 横向滚动条 };</code></pre> </blockquote> <hr /> <blockquote> <h3>BEGIN_END_PAINT_STRUCT</h3> <p>数据类型原型</p> <pre><code>// 各个组件开始和结束绘画使用的结构 struct BEGIN_END_PAINT_STRUCT : PAINTSTRUCT { RECT rc; // 组件客户区矩形 int cxClient; // 客户区宽度 int cyClient; // 客户区高度 LPVOID pFont; // 内部使用, 不允许修改 LPVOID hFont; // 内部使用, 不允许修改 LPVOID md; // 内部使用, 不允许修改 BOOL isDxRender; // 内部使用, 不允许修改 LPOBJSTRUCT pData; // 窗口数据 };</code></pre> </blockquote> <hr /> <h3>IDRAW_STRUCT_WINDOW_ARGUMENT <code>最低要求版本: v1.2.101</code></h3> <pre><code> 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;</code></pre> <hr /> <h3>IDRAW_STRUCT_DRAWSTRUCT <code>最低要求版本: v1.2.101</code></h3> <pre><code>// 绘画的结构 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;</code></pre>

页面列表

ITEM_HTML