文章摘要
问题的诞生 问题大概是这么诞生的的: sciter库自带丰富的tiscript函数足以满足前端的大部分需求,然而我还是希望一些前端的事件能够使用C++中的函数来处理 这就需要前后端进行交互,大致就是将前端的按钮单击事件绑定到C++函数中 sciter库已经为我们准备了方法进行绑定 然而.... 正题(踩坑) sciter库提供了丰富的示例代码,其中库里的window类能够快速地创建窗口 然而我确进…
问题的诞生 问题大概是这么诞生的的: sciter库自带丰富的tiscript函数足以满足前端的大部分需求,然而我还是希望一些前端的事件能够使用C++中的函数来处理 这就需要前后端进行交互,大致就是将前端的按钮单击事件绑定到C++函数中 sciter库已经为我们准备了方法进行绑定 然而.... 正题(踩坑) sciter库提供了丰富的示例代码,其中库里的window类能够快速地创建窗口 然而我确进入了一个误区 网上的大部分教程都是使用类似于以下的代码进行事件绑定 C++中 BEGIN_FUNCTION_MAP FUNCTION_0("tis脚本中使用的函数名", C++文件中的函数名); END_FUNCTION_MAP 然后在定义一个和上面函数名一样的函数 Tiscript中 $(绑定的控件).onclick = function(){ view.刚才在C++中定义的函数(); } 绑定有很多种方式,这里再给出一种方式 event click $(绑定的控件){ view.刚才在C++中定义的函数(); } 然后我理所当然的改写sciter库中window类的相关定义,测试的时候debug窗口报了以下错误 原来我在窗口创建完成之前就进行了控件绑定 我这是在试图绑定幽灵控件啊 填坑 OK,修补代码,示例代码中有一个继承了window类的子类frame 实际上就是我程序的主窗口,这种继承风格有点像MFC,MFC中的窗口类也会继承父窗口类,例如我有一个窗口类叫HelloWorld,在MFC里他就可能继承CDialog、CWnd或者其他父窗口类 不难知道在C++中,父类先初始化,然后再是子类,那我们把绑定过程放在子类里不就行了,它会在子类创建完窗口后调用绑定函数的部分。 试试修补之后的代码 完美运行! 这就是我踩坑和填坑的全过程了问题的诞生
问题大概是这么诞生的的:
sciter库自带丰富的tiscript函数足以满足前端的大部分需求,然而我还是希望一些前端的事件能够使用C++中的函数来处理
这就需要前后端进行交互,大致就是将前端的按钮单击事件绑定到C++函数中
sciter库已经为我们准备了方法进行绑定
然而....
正题(踩坑)
sciter库提供了丰富的示例代码,其中库里的window类能够快速地创建窗口
然而我确进入了一个误区
网上的大部分教程都是使用类似于以下的代码进行事件绑定
C++中
然后在定义一个和上面函数名一样的函数
Tiscript中
绑定有很多种方式,这里再给出一种方式
原来我在窗口创建完成之前就进行了控件绑定 我这是在试图绑定幽灵控件啊
填坑
OK,修补代码,示例代码中有一个继承了window类的子类frame
实际上就是我程序的主窗口,这种继承风格有点像MFC,MFC中的窗口类也会继承父窗口类,例如我有一个窗口类叫HelloWorld,在MFC里他就可能继承CDialog、CWnd或者其他父窗口类
不难知道在C++中,父类先初始化,然后再是子类,那我们把绑定过程放在子类里不就行了,它会在子类创建完窗口后调用绑定函数的部分。
这就是我踩坑和填坑的全过程了
本文采用 CC BY-NC-SA 4.0 协议进行授权,如无注明均为原创,转载请注明出处。
标题:C++在使用sciter UI库时踩过的坑作者:九仞之行链接:http://dev.styunlen.cn/archives/post-536.html


还没有评论呢 ~ 快来抢沙发吧 🛋️