消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息。例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标。
在消息回调函数里,可以处理控件或窗口的所有消息。
对于主窗体:直接双击窗体就可以创建消息回调函数了,如下:
} case 0x205/*_WM_RBUTTONUP 鼠标右键弹起,弹出菜单*/ begin //winform.popmenu.popup(::LOWORD(lparam), ::HIWORD(lparam));//弹出菜单 end else { } } //无返回值则继续调用默认回调函数
}//endproc
_WM_SYSTEMERROR = 0x0017;
_WM_GETOBJECT = 0x003D;
_WM_NCHITTEST = 0x0084;//移动鼠标,按住或释放鼠标时发生
/*
::PostMessage(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/ , 0x2/_HTCAPTION/, 0)
//二、模拟边框
//上下左右8个方向调整窗体大小
::SendMessageInt(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/, 0xC/_HTTOP/, 0) //上边
::SendMessageInt(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/, 0xF/_HTBOTTOM/, 0) //下边
::SendMessageInt(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/, 0xA/_HTLEFT/, 0 );//左边
::SendMessageInt(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/, 0xB/_HTRIGHT/, 0);//右边
::SendMessageInt(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/, 0xD/_HTTOPLEFT/, 0);//左上角
::SendMessageInt(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/, 0x10/_HTBOTTOMLEFT/, 0 );//左下角
::SendMessageInt(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/, 0xE/_HTTOPRIGHT/, 0 );//右上角
::SendMessageInt(winform.hwnd, 0xA1/_WM_NCLBUTTONDOWN/, 0x11/_HTBOTTOMRIGHT/, 0);//右下角
//三.最大化最小化窗体(和上面调用方法一样,只有sendmessage方法参数不一样)
//1.模拟窗体最小化
::PostMessage(winform.hwnd, 0x112/_WM_SYSCOMMAND/,0xF020/_SC_MINIMIZE/, 0);
//2.模拟窗体最大化
::PostMessage(winform.hwnd, 0x112/_WM_SYSCOMMAND/, 0xF030/_SC_MAXIMIZE/,0);
//3.模拟窗体最大化后还原
::PostMessage(winform.hwnd, 0x112/_WM_SYSCOMMAND/, 0xF120/_SC_RESTORE/, 0);
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211452.html原文链接:https://javaforall.net
