关于 delphi 的消息处理??(100分)

  • 主题发起人 主题发起人 阿蒙
  • 开始时间 开始时间

阿蒙

Unregistered / Unconfirmed
GUEST, unregistred user!
在 delphi 中厂如此处理
const
wm_test=wm_user+1000;
.
procedure wndproc(var message tmessage) message wm_test;
这里这莫用
procedure tform1.wndproc(var message tmessage) message wm_test;
if message.lparam;=wm_lbuttondown then
即 lparam 属性接受系统消息
而如果是重载
procedure wndproc(var message tmessage)virtual;
则对应
procedure wndproc(var message tmessage)
if message.msg=wm_lbuttondown then
请问关于 message 的 属性
msg wparam lparam result 怎莫用
 
记得sendmessage的用法吗? msg,wparam,lparam 分别对应后面三个参数
result对应sendmessage的返回值

BTW:别来无恙?
 
message 的 msg 和 lparam 怎莫区别
btw 是什莫意思? :)
 
re:=sendmessage(handle,SW_GETTEXT,0,0);
其中:
re -> result
SW_GETTEXT -> msg
0 -> wParam
0 -> lParam

btw -> by the way
 
msg=wm_test,
lparam消息得附加数据

》message.lparam;=wm_lbuttondown
正确吗?值得怀疑?

<font color=red>BTW</font>: <font color=red>B</font>y <font color=red>T</font>he <font color=red>W</font>ay
 
用wndproc来处理消息好象不大好吧?
改个名字吧
 
大家不要说别的.我对这些还是了解的
message.lparam;=wm_lbuttondown 多了一个 改为
message.lparam=wm_lbuttondown .
windows 的消息好像和 delphi 的有区别
message.msg=wm_lbuttondown
message.lparam=wm_lbuttondown
这两句话用了不同的属性.但都可以接受系统消息.他们有什莫区别?
 
这些都与windows有关,你在vc中就会发现。他的数据类型特别多。不过实际上就是
那么几种,他为了使参数好区分一点,给每个都取个名字,类型。
字不达意,大致如此。
 
阿盟:
message.lparam=wm_lbuttondown .
这种用法在那里见到的? 把代码贴出来. 我好像也见到过.
 
阿蒙:
好久不见!
我要下功夫学习Delphi了!
 
我的ID是多少?
 
写任务栏通知程序时。就用 lparam
procedure form1。traycallback(var message:tmessage);
begin
if (message。lparam=wm_rbuttondown) thwn
begin
if(message.wparam=idi_tryicon) then
begin
popuemenu.popup(twmmouse(message).pos.x,twmmouse(message).pos.y);
end;
end;
end;
这是李唯〈〈delphi 3 从入门到精通〉〉中的。也有一些网上的例子也差不多。
 
用lparam不是随便选择的,是由MicroSoft规定的。李唯的书不是说的很清楚了吗?
msg=WM_TESt.在TrayIcon所有事件都是由WM_TEST发给你的程序。
wparam=你发生事件的Icon的ID.
lparam=鼠标左,中,右键。

其他系统消息,不同的消息参数的使用可能不同。在使用时,尽量先查Win32.Hlp.
 
我没看过那本书,不过,我这里的一个trayicon的例子是这样声明callBack的:
procedure TrayIconCallback(var Message: TMessage); message WM_TRAY_CALLBACK;

在这个例子里,你受到的消息不是你直接受到的,而是system受到后通过callback
传递给你的, 当她callback你的时候,实际上传递的是消息WM_TRAY_CALLBACK,
那么wm_lbbuttondown这个消息就没有地方放置了,所以要放到lParam里面.

当然,就像前卫说的,这些都是windows规定好的.
 
原来如此.多谢 cakk 虽然沈前卫答的我都知道.还是谢谢你
 
后退
顶部