本文整理汇总了C++中CControlUI::RegSysMsgToScript方法的典型用法代码示例。如果您正苦于以下问题:C++ CControlUI::RegSysMsgToScript方法的具体用法?C++ CControlUI::RegSysMsgToScript怎么用?C++ CControlUI::RegSysMsgToScript使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CControlUI
的用法示例。
在下文中一共展示了CControlUI::RegSysMsgToScript方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ViRegSysMsgCallBack
// 脚本里注册某个控件的系统消息回调
// 脚本调用原型:
// BOOL ViRegSysMsgCallBack(VApiHandle hWnd, int nMsg, string Func);
// 参数2为控件接收到的外部系统消息.其实还有控件内部的消息,这里不能注册,但能被接受到
// Func 的C原型为typedef int (FN_QiCallVmMsg)(HANDLE hHandle, int nMsg, int nSubMsg, int x, int y, int Key, SQInteger nOtherInfo, SQChar* sOtherInfo);
SQInteger ViRegSysMsgCallBack(HSQUIRRELVM v)
{
BOOL bRet = FALSE;
VApiHandle hWnd = NULL;
CControlUI* pCtrl = NULL;
SQInteger nargs = sq_gettop(v);
int Msg = NULL;
const SQChar* pFunc = NULL;
PVOID pMsgVmCallArr = NULL;
ASSERT(nargs == 3 + 1 && v);
if (!v || 3 + 1 != nargs) {bRet = FALSE; goto _Exit_;}
QiTestArgs(v, 2);
QiTestArgs(v, 3);
QiTestArgs(v, 4);
if (OT_INTEGER != sq_gettype(v, 2) ||
OT_INTEGER != sq_gettype(v, 3) ||
OT_STRING != sq_gettype(v, 4))
{bRet = FALSE; goto _Exit_;}
sq_getinteger(v, 2, &hWnd);
pCtrl = QiHwHandleToCtrl(hWnd); // 这里没验证控件指针的有效性,以后有时间再补上
ASSERT(pCtrl);
if (!pCtrl) {bRet = FALSE; goto _Exit_;}
sq_getinteger(v, 3, &Msg);
sq_getstring(v, 4, &pFunc);
if (!pFunc || QiScriptMsgNameMaxLen < wcslen(pFunc)) {bRet = FALSE; goto _Exit_;}
pCtrl->RegSysMsgToScript(Msg, pFunc);
bRet = TRUE;
_Exit_:
sq_pushbool(v, bRet);
return 1;
}