(五下)安装ffi模块,使用electron调用win32 api, win32项目设置父子窗口关系

现在安装ffi的可调用模块:

发现用npm安装时,报python的错,但是python的环境变量确实没有问题啊:

(五下)安装ffi模块,使用electron调用win32 api, win32项目设置父子窗口关系

重新安装python,顺便换个路径和环境变量就可以了。

在一堆警告中安装了ffi模块,如图:(记录下这堆警告,以后出了BUG可能跟这堆警告有关系)

(五下)安装ffi模块,使用electron调用win32 api, win32项目设置父子窗口关系

electron-rebuild rebuild一下ffi(之前提到过,要编译成适合electron适用的模块)

(五下)安装ffi模块,使用electron调用win32 api, win32项目设置父子窗口关系

成功rebuild

尝试编译,可以使用ffi模块了。

使用ffiuser32.dll库中的sendMessage函数,但是在输入参数类型的时候有一些问题了。

LRESULT SendMessageHWND hWndUINT MsgWPARAM wParamLPARAM IParam

HWND对应int

试着加了一个int ReleaseDC(int,int)都可以成功啊,为什么sendMessage不行呢?

不太理解啊,这个SendMessage的参数应该全都是int才对啊?

 

好不容易查到一个关于user32.dll的文档的所有API函数集合:

http://www.archivum.info/microsoft.public.windowsxp.general/2006-06/06117/Re-USER32.DLL-API.html

发现里面并没有SendMessage(只有AW两种版本)——细思极恐

所以我们就只使用其中的一个函数,而不是使用sendMessage啦,然后windows的话大多使用unicode编码——SendMessageW

 成功解决这个问题。


Node.js怎么获取命令行参数呢?早就获取好了!——process.argv

接下来,要在win32中自定义消息。WM_USER + 0  很简单的。

然后在消息捕获函数中,调用setParent函数就可以设置父子窗口关系啦!————踏出第一小步


接下来,就是在MFC中设置子窗口啦。
MFC自己生成的一个窗口,对应的是什么窗口句柄呀??————

参考http://blog.csdn.net/laogaoav/article/details/20298781

AfxGetMainWnd()->m_hWnd 应该可以得到主窗口的窗口句柄

(五下)安装ffi模块,使用electron调用win32 api, win32项目设置父子窗口关系

MFC自带了消息映射函数,那么该如何自定义消息呢?

-------------参考 http://blog.csdn.net/qihailong123456/article/details/6777112  这个步骤

不过好像自定义消息返回值类型不能为void