易IDE视觉库插件开发文档

插件开发


IDC_ 功能ID

[toc]

iDraw_IDCall 函数

  • 调用视觉库提供的功能

函数原型

int IDRAW_CALL iDraw_IDCall(
    int    nCode,
    WPARAM wParam,
    LPARAM lParam
);

参数

nCode 类型: int

  • 要调用的功能号
  • 有关视觉库提供的功能号列表, 请往下参阅视觉库定义的功能ID

参数: wParam 参数: lParam 返回值

  • 请参阅功能号说明

要求

  • 最低支持版本 1.0.713

功能ID列表 常量名 16进制值 10进制值 最低支持版本


  • IDC_IDRAW_STR2RGB 0x08D00100 147849472 v1.0.801
  • 将一个文本颜色转换成RGB颜色, wParam = 默认颜色, 调用失败返回这个颜色, lParam指向颜色文本指针

  • IDC_IDRAW_STR2ARGB 0x08D00101 147849473 v1.0.801
  • 将一个文本颜色转换成ARGB颜色, wParam = 默认颜色, 调用失败返回这个颜色, lParam指向颜色文本指针

  • IDC_IDRAW_RGB2STR 0x08D00102 147849474 v1.0.801
  • 将RGB颜色转换成文本 RGB(1,2,3), wParam=要转换的rgb, lParam = 至少20个WCHAR缓冲区指针, 返回写入字符数

  • IDC_IDRAW_ARGB2STR 0x08D00103 147849475 v1.0.801
  • 将ARGB颜色转换成文本 ARGB(255,1,2,3), wParam=要转换的argb, lParam = 至少26个WCHAR缓冲区指针, 返回写入字符数

  • IDC_IDRAW_GETWINDOWDATA 0x08D00104 147849476 v1.0.801
  • 获取窗口数据, wParam保留, lParam = 要获取的窗口句柄, 成功返回数据指针, 失败返回0

  • IDC_IDRAW_GETCODEVISIBLERECT 0x08D00105 147849477 v1.0.801
  • 获取代码窗口可视的矩形, wParam保留, lParam = 接收矩形的指针(基于易语言主窗口位置)

  • IDC_IDRAW_INLINEHOOK 0x08D00200 147849728 v1.0.801
  • 设置inlineHook, wParam = 原函数, lParam = 新函数, 返回原函数地址, 可以直接调用原函数

  • IDC_IDRAW_UNINLINEHOOK 0x08D00201 147849729 v1.0.801
  • 取消inlineHook, wParam = 原函数, lParam = 新函数, 返回是否成功

  • IDC_IDRAW_CREATEPOPUPMENU 0x08D00203 147849731 v1.0.801
  • 创建有自绘样式的弹出式菜单, 所有加入到这个弹出式菜单里的子菜单都会被自绘

  • IDC_EIDE_GETCODEMANAGE 0x08D00401 147850241 v1.0.801
  • 获取IDE代码管理(IEIDE_CodeManage)类指针, 忽略wParam参数, lParma = 代码窗口窗口句柄, 为0则获取当前窗口

  • IDC_EIDE_GETLINESPACING 0x08D00402 147850242 v1.0.801
  • 获取单行间隔, 忽略wParam和 lParam参数

  • IDC_EIDE_SETLINESPACING 0x08D00403 147850243 v1.0.801
  • 暂未实现, 设置单行间隔, 忽略wParam和 lParam参数

  • IDC_EIDE_GETLINEHEIGHT 0x08D00404 147850244 v1.0.801
  • 获取单行高度, 忽略wParam和 lParam参数

  • IDC_EIDE_SETLINEHEIGHT 0x08D00405 147850245 v1.0.801
  • 暂未实现, 设置单行高度, 忽略wParam和 lParam参数

  • IDC_EIDE_GETCODEWINDOW 0x08D00406 147850246 v1.0.801
  • 获取当前代码框句柄, 如果当前是起始页或者设计器窗口则返回0, 忽略wParam和 lParam参数

  • IDC_EIDE_GETECOLOR 0x08D00407 147850247 v1.0.801
  • 获取易语言当前使用的配色, wParam = 缓冲区尺寸, lParam = 缓冲区地址, 返回写入缓冲区字节数, wParam/lParam为0则返回缓冲区需要的尺寸

  • IDC_EIDE_SETECOLOR 0x08D00408 147850248 v1.0.801
  • 设置易语言当前使用的配色, wParam为0则lParam是完整的配色文件路径Unicode版, 不为0则lParam指向配色数据, wParam为数据尺寸, lParam = 根据wParam决定是什么值

  • IDC_SCROLL_GETRECT 0x08D00500 147850496 v1.0.801
  • 获取滚动条位置, 可以通过这个事件修改边框达到指定绘画滚动条位置, wParam = pfn_GetScrollRect 回调函数, lParam = 窗口数据指针, 成功返回 wParam, 失败返回0
    // pScroll = 滚动条对象
    // pData = 滚动条所在的窗口数据
    // isVScroll = 是否为纵向滚动条
    // prc = 边框的4个边宽高, 修改这个值不会改变窗口的非客户区大小, 只会影响滚动条绘画的尺寸
    // prc->left   += 10; 左边边框增加10, 绘画时滚动条左边增加10个像素, 也就是会往右移动10个像素
    // prc->top    += 20; 顶边边框增加20, 绘画时滚动条顶边增加10个像素, 也就是会往下移动20个像素
    // prc->right  += 30; 右边边框增加30, 绘画时滚动条右边减少30个像素
    // prc->bottom += 40; 底边边框增加40, 绘画时滚动条底边减少40个像素
    // 左右一般是横向滚动条, 上下一般是纵向滚动条, 根据需要修改
    bool IDRAW_CALL pfn_GetScrollRect(void* pScroll, LPOBJSTRUCT pData, bool isVScroll, RECT* prc)
    {
    return 0;   // 返回0默认处理, 返回非0则拦截默认处理
    }

  • IDC_SCROLL_CALCRECT 0x08D00501 147850497 v1.0.801
  • 计算滚动条位置, 可以通过这个事件修改窗口非客户区位置, wParam = pfn_CalcScroll 回调函数, lParam = 窗口数据指针, 成功返回 wParam, 失败返回0
    // pScroll = 滚动条对象
    // pData = 滚动条所在的窗口数据
    // prc = WM_NCCALCSIZE 消息下 NCCALCSIZE_PARAMS 结构的 rgrc[0]
    // LPNCCALCSIZE_PARAMS P = (LPNCCALCSIZE_PARAMS)lParam;
    // prc = &p->rgrc[0]; prc 就是这个值, 需要对窗口的非客户区进行修改可以参考 WM_NCCALCSIZE 消息说明
    // prc->left   += 50; 左边非客户区加宽50, 左边框+50
    // prc->top    += 60; 顶边非客户区加宽60, 顶边框+60
    // prc->right  -= 70; 右边非客户区加宽70, 右边框+70
    // prc->bottom -= 80; 底边非客户区加高80, 底边框+80
    bool IDRAW_CALL pfn_CalcScroll(void* pScroll, LPOBJSTRUCT pData, RECT* prc)
    {
    return 0;   // 返回0默认处理, 返回非0则拦截默认处理
    }

  • IDC_SCROLL_DRAW 0x08D00502 147850498 v1.0.801
  • 绘画滚动条, wParam = pfn_DrawScroll 回调函数, lParam = 窗口数据指针, 成功返回 wParam, 失败返回0

    // pScroll = 滚动条对象
    // pData = 滚动条所在的窗口数据
    // isVScroll = 是否为纵向滚动条
    // hdcWindow = 滚动条的绘画DC
    // type = SCROLL_DRAWTYPE 枚举常量, 表示当前的绘画阶段
    // rcDraw = 滚动条默认绘画的位置
    bool IDRAW_CALL pfn_DrawScroll(void* pScroll, LPOBJSTRUCT pData, bool isVScroll, HDC hdcWindow, int type, RECT_F* rcDraw)
    {
    return false;   // 返回true则拦截绘画, 返回false则内部继续绘画
    }

  • IDC_IMOVE_GETWINDOWTYPE 0x06D00001 114294785 v1.0.801
  • 获取当前MDIClient 窗口下是显示什么窗口, -1=没有窗口, 0=代码区, 1=设计器窗口, 2=起始页, 高位是窗口类型, 0=未知, 1=窗口设计器, 2=普通程序集, 3=窗口程序集, 4=类, 5=全局变量, 6=数据类型, 7=DLL目录定义表, 8=常量, 9=图片资源, 10=声音资源

  • IDC_IMOVE_GETCODETYPE 0x06D00002 114294786 v1.0.801
  • 获取当前MDIClient 窗口下是显示什么窗口类型, 0=未知, 1=窗口设计器, 2=普通程序集, 3=窗口程序集, 4=类, 5=全局变量, 6=数据类型, 7=DLL目录定义表, 8=常量, 9=图片资源, 10=声音资源, 不需要传递参数

页面列表

ITEM_HTML