delphi 中还不是一样?
解决方案 »
- 请问有朋友做过飞鸽传书吗?难度大不大?
- idhttp无法用try结构捕捉到错误
- 大侠们,讨论 编程动态设置 控件属性,现行的编译技术有做到么?
- 看看这样写有什么不对吗?总是报错?让窗体上的tmenuitem.enabled变成false
- 用Qreport怎样选择自定义的纸张
- 关于chm文件的问题,来着有分!
- 请问如何实现选择edit1中的内容,按f1,可以调用自己编写的帮助文件?
- Delphi初学者,请教一个关于编COS(X)的问题,谢谢~
- 一个很简单的DELPHI+ACESS错误,不能添加...急,在线等待回答
- 如何得知在delphi中sqlserver的是否在运行和停止状态?
- 急,急,急!关于WINDOWS消息处理!
- 怎样实现压缩或解压缩
在下面的VB程序中
Public Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If uMsg = WM_COPYDATA Then
Call PacketHandle(lParam)
ElseIf uMsg = TRAY_CALLBACK Then
If lParam = WM_RBUTTONUP Then
TheForm.PopupMenu TheMenu
ElseIf lParam = WM_LBUTTONUP Then
TheForm.WindowState = vbNormal
TheForm.Visible = True TheForm.SetFocus
End If
End If
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Function
PacketHandle(lParam)是对参数的处理,CallWindowProc是取消息吗???
begin
ShowMessage('收到WM_COPYDATA消息');
end;
另外用消息函数接受时怎样处理参数lparam????
lparam的处理在消息里他是一个Word 型的数,
消息的不同他代表的意义也不同,比如WM_MouseMOVE中他的LParam的高2位代表y坐标
低两位代表y坐标,WM_Paint中他的Lparam就没有用。
在Delphi中将消息进行了2次封装,所有比如WM_MouseMOve封装成一个记录型TWMMOUSEMOVE然后他可以很方便的将坐标为你分开,不需你自己费力