IRE_ 事件通知
<p>[toc]</p>
<blockquote>
<h3>IRE_STRUCT_MENU_CALCSIZE</h3>
<p>数据类型原型</p>
<pre><code>// 计算菜单尺寸事件结构
typedef struct IRE_STRUCT_MENU_CALCSIZE
{
int width; // 菜单宽度
int height; // 菜单高度
LPARAM param; // 添加菜单时的菜单数值, 弹出式菜单这个值为0
}*LPIRE_STRUCT_MENU_CALCSIZE;</code></pre>
<h3>IRE_STRUCT_MENU_DRAW</h3>
<p>数据类型原型</p>
<pre><code>// 背景被绘画事件结构
typedef struct IRE_STRUCT_MENU_DRAW
{
LPCANVAS hCanvas; // dx使用的绘画句柄, 需要gdi/gdi+的话请使用 iDraw_canvas_getdc() 获取绘画DC
int width; // 宽度
int height; // 高度
int id; // 菜单ID
UINT type; // 菜单类型
LPCWSTR text; // 菜单标题
int state; // 菜单状态, 一个或多个值的组合
}*LPIRE_STRUCT_MENU_DRAW;</code></pre>
<h3>IRE_STRUCT_GETICON</h3>
<p>数据类型原型</p>
<pre><code>typedef struct IRE_STRUCT_GETICON
{
HWND hWnd; // 要获取图标的窗口句柄, 如果是菜单这个值为0
LPVOID hResource; // 绑定窗口时的资源句柄
LPCWSTR pszID; // 项目文本
LPVOID pArg; // 如果是菜单, 这个值为菜单ID, 根据组件类型来传递不同数据, 详情请查看帮助文档(未写....)
RECT_F* prc; // 指向 IDRAW_RECT_F 结构指针, 需要把图标位置写入这个地址
int state; // 当前要获取的状态图标, 目前只有 STATE::NORMAL, STATE::HOT, STATE::DOWN, STATE::BAN 这几个状态
int* pIconType; // 图标来源, 0=id指向的图标, 1=默认图标, 目前暂时不使用这个参数
}*LPIRE_STRUCT_GETICON;</code></pre>
<h3>IRE_STRUCT_TAB_SIZE</h3>
<p>数据类型原型</p>
<pre><code>// 选择夹尺寸改变事件结构
typedef struct IRE_STRUCT_TAB_SIZE
{
int index; // 当前选中项
int direction; // 当前选择夹方向
RECT rc; // 选择夹内的组件建议的位置, 这个位置已经把选择夹的头部空了出来, 内部根据这个结构调整位置, 可以被修改
}*LPIRE_STRUCT_TAB_CHANGE;</code></pre>
<h3>IRE_STRUCT_MDICLIENT_MOVE_EVENT</h3>
<p>数据类型原型</p>
<pre><code>typedef struct IRE_STRUCT_MDICLIENT_MOVE_EVENT
{
int windowType; // 当前MDI下窗口的类型, 低位 -1=没有窗口, 0=代码区, 1=设计器窗口, 2=起始页, 高位 当前MDIClient 窗口下是显示什么窗口类型, 0=未知, 1=窗口设计器, 2=普通程序集, 3=窗口程序集, 4=类, 5=全局变量, 6=数据类型, 7=DLL目录定义表, 8=常量, 9=图片资源, 10=声音资源
HWND hChild1; // MDI窗口下的第一层窗口
HWND hChild2; // MDI窗口下的第二层窗口
HWND hChild3; // MDI窗口下的第三层窗口
HWND hChild4; // MDI下的第四层窗口, 如果是设计器窗口, 那这个窗口就是设计器窗口, 起始页则为最近打开源码超列, 代码区就是代码窗口
RECT rcChild1; // MDI下第一层窗口的移动位置, 基于MDIClient这个窗口的位置修改
RECT rcChild2; // MDI下第二层窗口的移动位置, 基于MDIClient下的第一层窗口的位置修改
RECT rcChild3; // MDI下第三层窗口的移动位置, 基于MDIClient下的第二层窗口的位置修改
RECT rcChild4; // MDI下第四层窗口的移动位置, 基于MDIClient下的第三层窗口的位置修改
}*LPIRE_STRUCT_MDICLIENT_MOVE_EVENT;</code></pre>
<h3>IRE_STRUCT_TAB_SELCHANGE</h3>
<p>数据类型原型</p>
<pre><code>// 代码切换选择夹选中被改变事件结构
typedef struct IRE_STRUCT_TAB_SELCHANGE
{
int index; // 切换后的索引, 如果为-1要么是代码修改要么就是选择夹空了
int indexOld; // 切换前的索引
HWND hWnd; // 切换后选择夹里的窗口句柄, 工作夹/状态夹暂时没有使用这个成员
HWND hWndOld; // 切换前选择夹里的窗口句柄, 工作夹/状态夹暂时没有使用这个成员
}*LPIRE_STRUCT_TAB_SELCHANGE;</code></pre>
<h3>IRE_STRUCT_HOOKARG</h3>
<p>数据类型原型</p>
<pre><code>typedef struct IRE_STRUCT_HOOKARG
{
int code; // 详情请参考 SetWindowsHookEx 回调函数说明
WPARAM wParam; // 详情请参考 SetWindowsHookEx 回调函数说明
LPARAM lParam; // 详情请参考 SetWindowsHookEx 回调函数说明
LRESULT ret; // 拦截事件的返回值
}*LPIRE_STRUCT_HOOKARG;</code></pre>
<h3>IRE_STRUCT_BACKGROUND_DRAW</h3>
<p>数据类型原型</p>
<pre><code>// 背景被绘画事件结构
typedef struct IRE_STRUCT_BACKGROUND_DRAW
{
LPCANVAS hCanvas; // dx使用的绘画句柄, 需要gdi/gdi+的话请使用 iDraw_canvas_getdc() 获取绘画DC
int cxClient; // 宽度
int cyClient; // 高度
}*LPIRE_STRUCT_BACKGROUND_DRAW;</code></pre>
<h3>IRE_STRUCT_MSG</h3>
<p>数据类型原型</p>
<pre><code>// 消息事件的消息参数
typedef struct IRE_STRUCT_MSG
{
HWND hWnd; // 触发消息的窗口句柄
UINT message; // 消息值
WPARAM wParam; // 参数1
LPARAM lParam; // 参数2
}*LPIRE_STRUCT_MSG;</code></pre>
<h3>IRE_STRUCT_TOOLSTATE_CHANGE</h3>
<p>数据类型原型</p>
<pre><code>// 工具条状态改变事件结构
typedef struct IRE_STRUCT_TOOLSTATE_CHANGE
{
HWND hWnd; // 被改变的工具条句柄
int id; // 触发改变状态的按钮ID
int state; // 状态
}*LPIRE_STRUCT_TOOLSTATE_CHANGE;</code></pre>
<h3>IRE_STRUCT_MDICREATE</h3>
<p>数据类型原型</p>
<pre><code>// MDI被创建事件参数
typedef struct IRE_STRUCT_MDICREATE
{
HWND hWnd; // MDI窗口句柄
LPMDICREATESTRUCTA mcs; // MDI创建窗口结构, 易语言窗口都是A版, 这里接收的就是A版的结构
}*LPIRE_STRUCT_MDICREATE;</code></pre>
<h3>IRE_STRUCT_EIDE_SELCHANGEDINFO</h3>
<p>数据类型原型</p>
<pre><code>// 代码行号被改变事件参数
typedef struct IRE_STRUCT_EIDE_SELCHANGEDINFO
{
IEIDE_CodeManage* pCodeManage; // 代码管理类指针
int line; // 当前选中行号
int oldLine; // 选中当前行之前的行号
int oldLineCol; // 选中当前行之前的列号
}*LPIRE_STRUCT_EIDE_SELCHANGEDINFO;</code></pre>
<h3>IRE_STRUCT_AUTOHIDE_MOVE</h3>
<p>数据类型原型</p>
<pre><code>// 自动隐藏的窗口被调整尺寸
typedef struct IRE_STRUCT_AUTOHIDE_MOVE
{
HWND hWnd; // 被移动的窗口
RECT rc; // 移动的位置
}*LPIRE_STRUCT_AUTOHIDE_MOVE;</code></pre>
</blockquote>