|
|
|
炫彩界面库-UI组件扩展开发说明
基于炫彩界面库开发扩展UI组件, 弥补现有组件的不足,
例如: 浏览器组件, 视频播放组件, 表格组件, 简化列表组件 等等;
UI组件扩展开发:
方式1: 使用DLL封装炫彩UI扩展组件
方式2: 使用源码封装炫彩组件, 有源码自然可以提供DLL
界面库会提供一些扩展组件开发接口;
UI设计器对接:
通过配置文件, 配置扩展UI组件的属性, 提供给设计器使用, 用户可以通过设计器修改这些属性;
方式1: 提供UI组件DLL, UI设计器加载DLL, 在UI设计器中可以预览真实效果, 可设置属性;
方式2: 没有UI组件DLL, 可能是采用源码方式扩展的, 在UI设计器中, 使用一个占位组件, 可设置属性,但是没办法预览真实效果;
具体流程:
例如简化列表框组件
1. 使用VS新建C++项目, 包含炫彩界面库库
2. 列表框组件需要滚动功能, 那么就从滚动视图组件扩展
3. 为了能识别扩展的组件, 通过界面库提供的接口, 设置组件类型, 样式, 和自定义数据
4. 开发组件功能, 然后编译DLL(可选)
5. 开发完功能后需要对接UI设计器, 写一个组件的配置文件, 并且把DLL放到指定目录, 提供给UI设计器读取;
6. 设计器启动时, 自动读取配置文件, 若是提供了DLL, 那么用户拖放组件时, 会创建真实组件, 若是没有, 会创建一个占位组件;
7. 用户可对属性进行设置, 即时查看效果, 并且可以点击预览按钮, 预览效果, 与内置组件使用无异;
8. 发布程序时, 需要包含扩展的组件DLL或源码即可
- //自定义列表框, 从滚动视图扩展
- #define XC_MY_LISTBOX 201 定义扩展组件类型
- class CMyListBox
- {
- public:
- HELE m_hEle;
-
- HELE Create(...)
- {
- m_hEle = XSView_Create(...); //基于滚动视图扩展, 因为需要滚动功能
- _XC_SetType(pEle->m_hEle, XC_MY_LISTBOX); //设置组件的最终类型
- _XC_AddType(pEle->m_hEle, XC_MY_LISTBOX); //添加到类型链
- _XC_BindData(pEle->m_hEle, (vint)this); //绑定数据
-
- //实现列表框功能...
- }
- };
复制代码
- // 以下接口供第三方扩展使用
- XC_API void WINAPI _XC_SetType(HXCGUI hXCGUI,XC_OBJECT_TYPE nType); //设置元素最终类型
- XC_API void WINAPI _XC_AddType(HXCGUI hXCGUI,XC_OBJECT_TYPE nType); //增加类型
- XC_API void WINAPI _XC_DebugPrintf(int level, const char *pFormat, ...);
- XC_API void WINAPI _XC_DebugPrintfW(int level, const wchar_t *pFormat, ...);
- XC_API void WINAPI _XC_BindData(HXCGUI hXCGUI, vint data);
- XC_API vint WINAPI _XC_GetBindData(HXCGUI hXCGUI);
复制代码
例如当前UI库中 日期时间 和 月历卡片 即是通过扩展接口开发;
与UI设计器对接功能暂时还没开发, 如果需要请联系作者;
|
|