消息回掉
~~~
winform.button.wndproc = function(hwnd,message,wParam,lParam){
//无返回值则继续调用默认回调函数
select(message) {
case 0x0203/*_WM_RBUTTONUP*/{
//鼠标双击弹起,下面获取坐标
var x,y = win.getMessagePos(lParam);
console.log(x,y)
}
else{
console.log('我啥也没干')
}
}
}
~~~
> hwnd 32位的窗口句柄。 一般我们不用管这个参数。
> message 用于区别其他消息的常量值,这些常量值通常以下划线开头,或_WM_开头
> wparam 通常是一个与消息有关的常量值,也可能是窗口或控件的句柄。
> lparam 通常是一个指向内存中数据的32位指针。 根据不同的消息,他们有不同的意义,例如在鼠标右键弹起消息里,::LOWORD(lparam)取lparam的低位表示x坐标, ::HIWORD(lparam)取出lparam的高位表示y坐标.
**消息回调的作用是拦截所有的消息,然后在回调函数中操作和控制。**
wndproc是消息回调,可以处理所有发给控件的消息,例如鼠标在控件上移动的_WM_MOUSEMOVE消息。
官方的帮助手册里列出了message,请自行查看。
至于每一个消息的wParam,lParam都有不同的含义,具体应用可以到MSDN或百度百科查一下,都非常详细。
