(五下)安装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模块了。
使用ffi的user32.dll库中的sendMessage函数,但是在输入参数类型的时候有一些问题了。
LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam)
HWND对应int
试着加了一个int ReleaseDC(int,int)都可以成功啊,为什么sendMessage不行呢?
【(五下)安装ffi模块,使用electron调用win32 api, win32项目设置父子窗口关系】不太理解啊,这个SendMessage的参数应该全都是int才对啊?

好不容易查到一个关于user32.dll的文档的所有API函数集合:
http://www.archivum.info/microsoft.public.windowsxp.general/2006-06/06117/Re-USER32.DLL-API.html
发现里面并没有SendMessage(只有A和W两种版本)———细思极恐
所以我们就只使用其中的一个函数,而不是使用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)

    推荐阅读