1. 'ele_event' : undeclared identifier 'RegisterAll': identifier not found
在使用炫彩界面库时,如果遇到以上错误,一般是由于使用了C++的支持API,但是自己写的类没有继承炫彩的类
错误写法:
class CSysOption
正确写法
class CSysOption:public CXEventMsg
这里需要继承炫彩的类,这样才能用C++方式定义事件消息等。
2. error LNK2019: unresolved external symbol "int __stdcall XInitXCGUI(wchar_t *)" (?XInitXCGUI@@YGHPA_W@Z) referenced in function _wWinMain@16
出现这个问题的原因在于"为了兼容其他版本VC++,设置:将wchar_t视为内置类型(否)" ,Microsoft的C/C++编译器定义了一个内建的数据类型wchar_t,它表示一个
16位的Unicode(UTF-16字符)。因为早期版本的Microsoft编译器没有提供这个内建的数据类型,所以编译器只有指定了/Zc:wchar_t编译器开关时,才会定义
这个数据类型。
具体设置如图:
3.关于XEle_SetId 其中的ID不要设置0 因为0默认是被占用的 问题发生情况如下
函数1中: HELE hEdit=XEdit_Create(57, 14, 41, 20, m_hMainWin); XEle_SetId(hEdit, 0); XEdit_EnableNumber(hEdit, TRUE); 函数2中: XEdit_SetInt(XWnd_GetEle(m_hMainWin, 0), 300);这里会提示句柄无效 OD跟踪发现
句柄下的第一个值 是0x25和0x18不相等 从而跳向提示 "句柄无效"
推测这个值是类型 查看炫彩帮助文档有:
#define XC_EDIT 24 编辑框元素 #define XC_STATIC 37 静态文本元素可以看到edit类型变成了静态文本 所以推断0默认被占用 改成其他的试试OK了
4.编辑框,树,列表等都是从滚动视图扩展的,都需要这么设置才能透明.
这个是v1.5版本的改动
滚动视图设置透明方法:
HELE hScrollView; //滚动视图元素句柄
XEle_SetBkTransparent(hScrollView,TRUE); //设置滚动视图透明
XEle_SetBkTransparent(XSView_GetView(hScrollView),TRUE); //设置滚动视图的视透明
示例如下:
XStatic_Create(19, 14, 39, 20, TEXT("红小于"), m_hMainWin); HELE hEdit1=XEdit_Create(57, 14, 41, 20, m_hMainWin); XStatic_Create(98, 14, 15, 20, TEXT("吃"), m_hMainWin); HELE hEdit2=XEdit_Create(112, 14, 70, 20, m_hMainWin);效果如图:
加入代码:
XEle_SetAlpha(hEdit1, 100); XEle_SetAlpha(hEdit2, 100);效果如图:
发现里边的文字没有透明 继续加入代码
XEle_SetAlpha(XSView_GetView(hEdit1), 100); XEle_SetAlpha(XSView_GetView(hEdit2), 100);效果如图:
(持续更新中。。。)