soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
smenuex-i.h
1#ifndef __SMENUEX_I__H__
2#define __SMENUEX_I__H__
3
4#include <interface/obj-ref-i.h>
5#include <interface/sxml-i.h>
7#include <soui_exp.h>
8
9SNSBEGIN
10
11#undef INTERFACE
12#define INTERFACE IMenuEx
13DECLARE_INTERFACE_(IMenuEx, IObjRef)
14{
15
16 //! 添加引用
17 /*!
18 * @return long - 当前引用计数
19 */
20 STDMETHOD_(long, AddRef)(THIS) PURE;
21
22 //! 释放引用
23 /*!
24 * @return long - 当前引用计数
25 */
26 STDMETHOD_(long, Release)(THIS) PURE;
27
28 //! 释放对象
29 /*!
30 * @return void
31 */
32 STDMETHOD_(void, OnFinalRelease)(THIS) PURE;
33
34 //=================================================================
35
36 /**
37 * @brief 从资源ID加载菜单
38 * @param resId - 资源ID
39 * @return BOOL - 成功返回TRUE,失败返回FALSE
40 */
41 STDMETHOD_(BOOL, LoadMenu)(THIS_ LPCTSTR resId) PURE;
42
43 /**
44 * @brief 从资源ID加载菜单(UTF-8编码)
45 * @param resId - 资源ID
46 * @return BOOL - 成功返回TRUE,失败返回FALSE
47 */
48 STDMETHOD_(BOOL, LoadMenuU8)(THIS_ LPCSTR resId) PURE;
49
50 /**
51 * @brief 从IXmlNode对象加载菜单
52 * @param xmlMenu - IXmlNode对象
53 * @return BOOL - 成功返回TRUE,失败返回FALSE
54 */
55 STDMETHOD_(BOOL, LoadMenu2)(THIS_ IXmlNode * xmlMenu) PURE;
56
57 /**
58 * @brief 插入一个菜单项
59 * @param uPosition - 插入位置
60 * @param uFlags - 标志,MF_BYCOMMAND或MF_BYPOSITION
61 * @param nIDNewItem - 项目ID
62 * @param strText - 文本
63 * @param iIcon - 图标索引
64 * @param hIcon - 图标句柄
65 * @return BOOL - 成功返回TRUE,失败返回FALSE
66 * @remark 如果hIcon不为空,则iIcon无效。菜单退出后将通过DestroyIcon删除hIcon。
67 */
68 STDMETHOD_(BOOL, InsertMenu)(THIS_ UINT uPosition, UINT uFlags, int id, LPCTSTR strText, int iIcon DEF_VAL(-1)) PURE;
69
70 /**
71 * @brief 追加一个菜单项
72 * @param uFlags - 标志,MF_BYCOMMAND或MF_BYPOSITION
73 * @param uIDNewItem - 新项ID
74 * @param strText - 文本
75 * @param iIcon - 图标索引
76 * @param hIcon - 图标句柄
77 * @return BOOL - 成功返回TRUE,失败返回FALSE
78 * @remark 如果hIcon不为空,则iIcon无效。菜单退出后将通过DestroyIcon删除hIcon。
79 */
80 STDMETHOD_(BOOL, AppendMenu)(THIS_ UINT uFlags, int id, LPCTSTR lpNewItem, int iIcon DEF_VAL(-1)) PURE;
81
82 /**
83 * @brief 设置菜单项的检查标志
84 * @param uIdCheckItem - 项目ID或索引
85 * @param uCheck - MF_BYCOMMAND/MF_BYPOSITION | MF_CHECKED/MF_UNCHECKED
86 * @return BOOL - 成功返回TRUE,失败返回FALSE
87 */
88 STDMETHOD_(BOOL, CheckMenuItem)(THIS_ UINT uIdCheckItem, UINT uCheck) PURE;
89
90 /**
91 * @brief 检查菜单单选项
92 * @param idFirst - 第一个ID
93 * @param idLast - 最后一个ID
94 * @param uCheck - 检查的ID
95 * @param uFlags - 标志,指定idFirst、idLast和idCheck的含义。如果此参数为MF_BYCOMMAND,则其他参数指定菜单项标识符。如果为MF_BYPOSITION,则其他参数指定菜单项位置。
96 * @return BOOL - 成功返回TRUE,失败返回FALSE
97 */
98 STDMETHOD_(BOOL, CheckMenuRadioItem)(THIS_ UINT idFirst, UINT idLast, UINT idCheck, UINT uFlags) PURE;
99
100 /**
101 * @brief 删除菜单项
102 * @param uPosition - 位置
103 * @param uFlags - 标志,MF_BYCOMMAND或MF_BYPOSITION
104 * @return BOOL - 成功返回TRUE,失败返回FALSE
105 */
106 STDMETHOD_(BOOL, DeleteMenu)(THIS_ UINT uPosition, UINT uFlags) PURE;
107
108 /**
109 * @brief 弹出菜单
110 * @param uFlags - 标志
111 * @param x - X坐标
112 * @param y - Y坐标
113 * @param hWnd - 窗口句柄
114 * @param nScale - 缩放比例,默认值为100
115 * @return UINT - 选择的菜单项ID
116 */
117 STDMETHOD_(UINT, TrackPopupMenu)(THIS_ UINT uFlags, int x, int y, HWND hWnd, int nScale DEF_VAL(100)) PURE;
118
119 /**
120 * @brief 销毁菜单
121 * @return void
122 */
123 STDMETHOD_(void, DestroyMenu)(THIS) PURE;
124
125 /**
126 * @brief 修改菜单项文本
127 * @param uPosition - 位置
128 * @param uFlags - 标志
129 * @param lpItemString - 项目文本
130 * @return BOOL - 成功返回TRUE,失败返回FALSE
131 */
132 STDMETHOD_(BOOL, ModifyMenuString)(THIS_ UINT uPosition, UINT uFlags, LPCTSTR lpItemString) PURE;
133
134 /**
135 * @brief 设置菜单项用户数据
136 * @param uPosition - 位置
137 * @param uFlags - 标志
138 * @param ulUserData - 用户数据
139 * @return BOOL - 成功返回TRUE,失败返回FALSE
140 */
141 STDMETHOD_(BOOL, SetMenuUserData)(THIS_ UINT uPosition, UINT uFlags, ULONG_PTR ulUserData) PURE;
142
143 /**
144 * @brief 获取菜单项用户数据
145 * @param uPosition - 位置
146 * @param uFlags - 标志
147 * @return ULONG_PTR - 用户数据
148 */
149 STDMETHOD_(ULONG_PTR, GetMenuUserData)(THIS_ UINT uPosition, UINT uFlags) PURE;
150
151 /**
152 * @brief 获取上下文帮助ID
153 * @return DWORD - 上下文帮助ID
154 */
155 STDMETHOD_(DWORD, GetContextHelpId)(CTHIS) SCONST PURE;
156
157 /**
158 * @brief 设置上下文帮助ID
159 * @param dwId - 上下文帮助ID
160 * @return void
161 */
162 STDMETHOD_(void, SetContextHelpId)(THIS_ DWORD dwId) PURE;
163
164 /**
165 * @brief 获取子菜单
166 * @param nPos - 子菜单索引
167 * @return IMenuEx* - 子菜单指针
168 */
169 STDMETHOD_(IMenuEx *, GetSubMenu)(THIS_ int nPos) PURE;
170
171 /**
172 * @brief 获取菜单项文本
173 * @param uPosition - 位置
174 * @param uFlags - 标志
175 * @param lpItemString - 项目文本
176 * @return BOOL - 成功返回TRUE,失败返回FALSE
177 */
178 STDMETHOD_(BOOL, GetMenuString)(THIS_ UINT uPosition, UINT uFlags, IStringT * lpItemString) PURE;
179
180 /**
181 * @brief 获取宿主窗口指针
182 * @return IHostWnd* - 宿主窗口指针
183 */
184 STDMETHOD_(IHostWnd *, GetHostWnd)(THIS) PURE;
185};
186
187EXTERN_C void SOUI_EXP EndMenuEx(int nCmdId);
188
189SNSEND
190#endif // __SMENUEX_I__H__
Interface for Skin Objects.
Interface for reference counting.
Definition obj-ref-i.h:19
Interface for XML nodes.
Definition sxml-i.h:128