谁有《D4开发大全》?50分。 谁能帮我解答两个消息的小问题(50分)(100分)

  • 主题发起人 主题发起人 千中元
  • 开始时间 开始时间

千中元

Unregistered / Unconfirmed
GUEST, unregistred user!
1)请把P167页那个消息的例子发到sheepishest@china.com
注意请把中文注释也加上(按照书上的)
2)下面的代码:
private
procedure WMPaint (var Msg:TWMPaint)
message WM_PAINT;
end;
实现部分:
procedure TForm1.WMPaint(var MSg:TWMPaint);
begin
MessageBeep(0);
inherited;
end;
问题1:在实现部分, var Msg:TWMPaint 中,TWMPaint是在哪里得到的?
好象书上说是因为最好按照message后面的WM_PAINT来。。。但这里怎么多了个T?
问题2:不要inherited为什么不行?
呵呵,工资除了吃饭住房,渣都没的剩,只能到书店站着看书,抄写两句感觉跟做贼似的。
 
是WM_SIZE的那个吗?
你要整个的源程序,还是就那一个?
 
就是从167页开始的那个代码.不过你要是网速不太慢的话把整个书的代码都发给我也行.
 
d4 p165说:
处理消息时,最后应当调用inheritrd,除非您不想进行常规的消息处理。
 
p171
在消息句柄中调用inherited把消息传递给祖先类的消息句柄,但在WndProc(),DefaultHandler()中调用时,需要后跟一个过程的名称:
inherited WndProc(Msg)
 
zhaipeng俺是不明白:<
 
问题1:
TWMPaint是消息结构,象这样
typedef struct tagMSG { // msg
HWND hwnd

UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
(Pascal形式去看TWMPAINT的源码)

WM_PAINT是消息标识,是前者message的值

问题2:
没有inherited,你的程序处理WM_PAINT消息时只会很变态的叫一声,你要是真想
实现这种效果,那就不要好了


 
除通用的TMessage记录外,Delphi为每个消息定义一个消息记录,这样就不必从WParam域和LParam域中分解有关信息。可在Message单元找到。
如:
type
TWMMouse=record
Msg:Cardinal;
Keys:Longint;
case Integer of
0: (XPos:Smallint;
YPos:Smallint);
1:(Pos:TSmallPoint;
Result:Longint);
end;
其他mouse消息这样声明:
TWMRButtonUP=TWMMouse;
TWMLButtonDown=TWMMouse;

每个Windows消息有一个消息记录,在消息表示符前加T并去下划线。
TMessage记录适用所有消息。
 
private
procedure WMPaint (var Msg:TWMPaint)
message WM_PAINT;
//在DELPHI 中用于消息处理的约定,并且必须有个VAR参数,类型是TMESSAGE或其他特殊的消息纪录
end;
实现部分:
procedure TForm1.WMPaint(var MSg:TWMPaint);
begin
MessageBeep(0);
inherited
//使系统发出声音,之后继承了windows message WM_PAINT。
end;
 
cheka
那本书书找到没有啊
to all,
谁能把那段代码发给俺?或者把整个的代码发过来。。或者下载地址?50分啊
sheepishest@china.com
 
先下载超星阅读器,再下载BOOK EXPRESS,就可下载到此书
bookexpress.iscool.net
 
不用bookexpress可以下载么?好像bookexpress里只有个传记图书馆。
给个url阿!!!!
着急!!!!
谁先把那段代码发到我邮箱里行不行??????
 
着急!!!!!!!!!!!!
 
我有,让另一个家伙拿去了
我讨回来再说
 
我发给你,你等着
 
不知你能否接受大邮件,打包后30多M
 
快赶上炸弹了, encode后超过40M了 :)
 
后退
顶部