Lua示例

main.lua 代码

print("main.lua")
require("_const")
require("_xcgui")
function OnBtnClick(pbHandled)
print("OnBtnClick()")
--XC_lua_modifyBOOL(pbHandled,1) --打开此函数可拦截事件
return 0
end
local style=const.xc_window_style_default ~ const.xc_window_style_center --窗口炫彩样式
local hWindow=XWnd_Create(0, 0, 400, 200,"炫彩界面库",0,style) --创建窗口
XBtn_SetType(XBtn_Create(20,2,60,22,"close",hWindow),const.button_type_close) --关闭按钮
local hButton=XBtn_Create(20,50,60,25,"button",hWindow) --普通按钮
XEle_RegEventC(hButton,const.XE_BNCLICK,OnBtnClick) --注册按钮点击事件
XWnd_ShowWindow(hWindow,SW_SHOW); --显示窗口
#define XE_BNCLICK
按钮点击事件.
Definition: XCGUI.h:939
@ button_type_close
窗口关闭按钮
Definition: XCGUI.h:299
HELE WINAPI XBtn_Create(int x, int y, int cx, int cy, const wchar_t *pName, HXCGUI hParent)
按钮_创建 创建按钮元素
Definition: ButtonUI.cpp:1765
XEle_RegEventC(hEle, nEvent, memberFunction)
元素_注册事件C 注册元素事件, 回调函数省略元素自身句柄hEle.
HWINDOW WINAPI XWnd_Create(int x, int y, int cx, int cy, const wchar_t *pTitle, HWND hWndParent, int XCStyle)
窗口_创建 创建窗口
Definition: WindowUI.cpp:5964
BOOL WINAPI XWnd_ShowWindow(HWINDOW hWindow, int nCmdShow)
@窗口_显示扩展 显示隐藏及控制窗口最大化还原等
Definition: WindowUI.cpp:6387

C++代码

//int _tmain(int argc, _TCHAR* argv[]) 打开可显示打印信息
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)
{
XC_InitLua();
XC_RunLua("main.lua");
XC_ExitLua();
return 0;
}
void WINAPI XExitXCGUI()
炫彩_退出 退出界面库释放资源. 不可在dllmain()中卸载, 否则会死锁
Definition: App.cpp:572
void WINAPI XRunXCGUI()
炫彩_运行 运行消息循环,当炫彩窗口数量为0时退出.
Definition: App.cpp:564
BOOL WINAPI XInitXCGUI(BOOL bD2D)
炫彩_初始化 初始化界面库.
Definition: App.cpp:557

Lua-通过函数参数接收字符串

function OnBtnClick(pbHandled)
local buf= XC_lua_newuserdata_wchar_t(100)
XEdit_GetText(hEdit,buf,100) --获取编辑框内容
print("buf=", XC_lua_userdata_wchar_t_ToString(buf))
return 0
end
local style=const.xc_window_style_default ~ const.xc_window_style_center --窗口炫彩样式
local hWindow=XWnd_Create(0, 0, 400, 200,"炫彩界面库",0,style) --创建窗口
XBtn_SetType(XBtn_Create(20,2,60,22,"close",hWindow),const.button_type_close) --关闭按钮
local hButton=XBtn_Create(20,50,60,25,"button",hWindow) --普通按钮
XEle_RegEventC(hButton,const.XE_BNCLICK,OnBtnClick) --注册按钮点击事件
hEdit=XEdit_Create(120,100,120,22,hWindow) --创建编辑框
XWnd_ShowWindow(hWindow,SW_SHOW); --显示窗口
HELE WINAPI XEdit_Create(int x, int y, int cx, int cy, HXCGUI hParent)
@编辑框_创建 创建
Definition: EditUI.cpp:6572
int WINAPI XEdit_GetText(HELE hEle, __out wchar_t *pOut, int nOutlen)
@编辑框_取文本 不包含非文本内容
Definition: EditUI.cpp:6878

Lua-通过函数参数接收结构体信息

function OnBtnClick(pbHandled)
local rect={}
XEle_GetRect(hButton,rect) --获取按钮坐标
print("return rect:","left="..rect.left, "top="..rect.top,
"right="..rect.right, "bottom="..rect.bottom)
return 0
end
local style=const.xc_window_style_default ~ const.xc_window_style_center --窗口炫彩样式
local hWindow=XWnd_Create(0, 0, 400, 200,"炫彩界面库",0,style) --创建窗口
XBtn_SetType(XBtn_Create(20,2,60,22,"close",hWindow),const.button_type_close) --关闭按钮
hButton=XBtn_Create(20,50,60,25,"button",hWindow) --普通按钮
XEle_RegEventC(hButton,const.XE_BNCLICK,OnBtnClick) --注册按钮点击事件
XWnd_ShowWindow(hWindow,SW_SHOW); --显示窗口
void WINAPI XEle_GetRect(HELE hEle, __out RECT *pRect)
元素_取坐标 获取元素坐标.
Definition: EleUI.cpp:3592

Lua-通过函数参数接收变量值

function OnBtnClick(pbHandled)
local height={}
local selHeight={}
XListBox_GetItemHeightDefault(hListBox,height,selHeight) --获取ListBox项默认高度
print("return height=",height.value, "selHeight="..selHeight.value)
return 0
end
local style=const.xc_window_style_default ~ const.xc_window_style_center --窗口炫彩样式
local hWindow=XWnd_Create(0, 0, 400, 200,"炫彩界面库",0,style) --创建窗口
XBtn_SetType(XBtn_Create(20,2,60,22,"close",hWindow),const.button_type_close) --关闭按钮
local hButton=XBtn_Create(20,50,60,25,"button",hWindow) --普通按钮
XEle_RegEventC(hButton,const.XE_BNCLICK,OnBtnClick) --注册按钮点击事件
hListBox=XListBox_Create(120,60,100,100,hWindow)
XWnd_ShowWindow(hWindow,SW_SHOW); --显示窗口
HELE WINAPI XListBox_Create(int x, int y, int cx, int cy, HXCGUI hParent)
列表框_创建 创建列表框元素.
Definition: ListBoxUI.cpp:2562
void WINAPI XListBox_GetItemHeightDefault(HELE hEle, __out int *pHeight, __out int *pSelHeight)
列表框_取项默认高度 获取项默认高度.
Definition: ListBoxUI.cpp:2877