当前位置: 首页>>代码示例>>C++>>正文


C++ CControlUI::RegCtrlMsgToScript方法代码示例

本文整理汇总了C++中CControlUI::RegCtrlMsgToScript方法的典型用法代码示例。如果您正苦于以下问题:C++ CControlUI::RegCtrlMsgToScript方法的具体用法?C++ CControlUI::RegCtrlMsgToScript怎么用?C++ CControlUI::RegCtrlMsgToScript使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CControlUI的用法示例。


在下文中一共展示了CControlUI::RegCtrlMsgToScript方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ViRegCtrlMsgCallBack

// 脚本里注册某个控件的控件消息回调
// 脚本调用原型:
// BOOL ViRegCtrlMsgCallBack(VApiHandle hWnd, string Msg, 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 ViRegCtrlMsgCallBack(HSQUIRRELVM v)
{
	BOOL           bRet          = FALSE;
	VApiHandle     hWnd          = NULL;
	CControlUI*    pCtrl         = NULL;
	SQInteger      nargs         = sq_gettop(v);
	const SQChar*  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_STRING  != 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_getstring(v, 3, &Msg);
	sq_getstring(v, 4, &pFunc);
	if (!pFunc || QiScriptMsgNameMaxLen < wcslen(pFunc)) {bRet = FALSE; goto _Exit_;}

	pCtrl->RegCtrlMsgToScript(Msg, pFunc);

	bRet = TRUE;

_Exit_:
	sq_pushbool(v, bRet);
	return 1;
}
开发者ID:eriser,项目名称:kdguigl,代码行数:43,代码来源:Scriptapi.cpp


注:本文中的CControlUI::RegCtrlMsgToScript方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。