消息机制??? 请各位大侠谈谈对消息机制的 概念理解, 怎样发送, 怎样获取, 最后实现目的..... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 定义自己的消息你去看看我这个贴子好了,上面有用到http://expert.csdn.net/Expert/topic/2094/2094919.xml?temp=.2000238 系统消息是由操作系统发送的,应用程序收到后做相应处理。如果是用delphi写程序的话,一般的消息处理不必手工编程,只要处理相应的事件即可 请帮我﹐我是在看别人的代码﹐没办法﹐开发的人已离开公司﹐有些地方不明白﹐請指教(送100分)。 PostMessage(TForm(Parent).Handle, pmRefreshChgReqItm, Word(true),0); pmRefreshChgReqItm = WM_USER+44; WM_USER = $0400; 上面三行代碼是在不的UNIT 中 提問﹕ 1. 這里的 $0400 是什么? 能否用其它數值代替嗎? 如 $0777﹐$9999﹐0022等? 2. 直接寫成 pmRefreshChgReqItm = $0400+44; 可以嗎? 那為何這樣作? 3. pmRefreshChgReqItm = WM_USER+44 為何要加上 44? 其它的數可以嗎? 4. WM_USER = $0400; 在 unit Messages;中定義在﹐而我查了這個文件 (unit Messages;)﹐在 DELPHI的菜單籃 view 下的 Units 和 Forms的 選項都找不到? 請問unit Message 是系統定義的﹐還是程序員定義的? 如是程序員﹐那他是在哪兒寫的? 另附 unit Message(部分) { *********************************************************************** }{ }{ Delphi Runtime Library }{ }{ Copyright (c) 1991-2001 Borland Software Corporation }{ }{ *********************************************************************** }{*******************************************************}{ Windows Messages and Types }{*******************************************************}unit Messages;{$A-}{$WEAKPACKAGEUNIT}interfaceuses Windows;{ Window Messages }const {$EXTERNALSYM WM_NULL} WM_NULL = $0000; {$EXTERNALSYM WM_CREATE} WM_CREATE = $0001; {$EXTERNALSYM WM_DESTROY} WM_DESTROY = $0002; {$EXTERNALSYM WM_MOVE} WM_MOVE = $0003; 0010; {$EXTERNALSYM WM_QUERYENDSESSION} WM_QUERYENDSESSION = $0011; {$EXTERNALSYM WM_QUIT} WM_QUIT = $0012; {$EXTERNALSYM WM_MOUSEACTIVATE}{ Edit Control Notification Codes }const {$EXTERNALSYM EN_SETFOCUS} EN_SETFOCUS = $0100; {$EXTERNALSYM EN_KILLFOCUS} EN_KILLFOCUS = $0200; {$EXTERNALSYM EN_CHANGE} EN_CHANGE = $0300; {$EXTERNALSYM EN_UPDATE} EN_UPDATE = $0400; {$EXTERNALSYM EN_ERRSPACE} EN_ERRSPACE = $0500; {$EXTERNALSYM EN_MAXTEXT} EN_MAXTEXT = $0501; {$EXTERNALSYM EN_HSCROLL} EN_HSCROLL = $0601; {$EXTERNALSYM EN_VSCROLL} EN_VSCROLL = $0602;{ Edit Control Messages }WM_USER = $0400;{ Button Notification Codes }const {$EXTERNALSYM BN_CLICKED} BN_CLICKED = 0; {$EXTERNALSYM BN_PAINT} BN_PAINT = 1;const {$EXTERNALSYM EM_GETSEL} EM_GETSEL = $00B0; {$EXTERNALSYM EM_SETSEL} EM_SETSEL = $00B1; {$EXTERNALSYM EM_GETRECT} EM_GETRECT = $00B2; {$EXTERNALSYM EM_SETRECT} EM_CANUNDO = $00C6; {$EXTERNALSYM EM_UNDO} EM_UNDO = $00C7; {$EXTERNALSYM EM_FMTLINES} EM_FMTLINES = $00C8; {$EXTERNALSYM EM_LINEFROMCHAR} EM_LINEFROMCHAR = $00C9; {$EXTERNALSYM EM_SETTABSTOPS} } SBM_GETSCROLLINFO = 234;{ Dialog messages } type{ Generic window message record } PMessage = ^TMessage; TMessage = packed record Msg: Cardinal; case Integer of 0: ( WParam: Longint; LParam: Longint; Result: Longint); 1: ( WParamLo: Word; TWMDestroy = TWMNoParams; TWMDestroyClipboard = TWMNoParams;; end; TWMInitMenu = packed recordd: HWND; case Integer of 0: ( XPos: Smallint; YPos: Smallint); 1: ( Pos: TSmallPoint; Result: Longint); end;implementationend. 行了,还是回去看看基础知识吧,Messages单元是什么都不知道。要是200分还值得写 请高手帮我看看这段程序含义。谢谢 SQL 数据库问题 纪录类型sizeof问题~~~~~抢分呵~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 一个状态栏的问题! 请教如何将安装的第三方控件卸载干净? 急!急!急!向各位高手请教: Midas结构问题!!!!! 每天做什么erp,好没意思,想做game 如何找到对方电脑的ip地址 自绘控件 向高手请教:dbgrid支持多选,请问怎样才能删除在dbgrid中的多条记录? 这样的应用很难设计,能给点建议吗
你去看看我这个贴子好了,上面有用到
http://expert.csdn.net/Expert/topic/2094/2094919.xml?temp=.2000238
如果是用delphi写程序的话,一般的消息处理不必手工编程,只要处理相应的事件即可
pmRefreshChgReqItm = WM_USER+44; WM_USER = $0400; 上面三行代碼是在不的UNIT 中 提問﹕ 1. 這里的 $0400 是什么? 能否用其它數值代替嗎? 如 $0777﹐$9999﹐0022等?
2. 直接寫成 pmRefreshChgReqItm = $0400+44; 可以嗎? 那為何這樣作?
3. pmRefreshChgReqItm = WM_USER+44 為何要加上 44? 其它的數可以嗎?
4. WM_USER = $0400; 在 unit Messages;中定義在﹐而我查了這個文件
(unit Messages;)﹐在 DELPHI的菜單籃 view 下的 Units 和 Forms的
選項都找不到? 請問unit Message 是系統定義的﹐還是程序員定義的?
如是程序員﹐那他是在哪兒寫的? 另附 unit Message(部分) { *********************************************************************** }
{ }
{ Delphi Runtime Library }
{ }
{ Copyright (c) 1991-2001 Borland Software Corporation }
{ }
{ *********************************************************************** }{*******************************************************}
{ Windows Messages and Types }
{*******************************************************}unit Messages;{$A-}
{$WEAKPACKAGEUNIT}interfaceuses Windows;{ Window Messages }const
{$EXTERNALSYM WM_NULL}
WM_NULL = $0000;
{$EXTERNALSYM WM_CREATE}
WM_CREATE = $0001;
{$EXTERNALSYM WM_DESTROY}
WM_DESTROY = $0002;
{$EXTERNALSYM WM_MOVE}
WM_MOVE = $0003;
0010;
{$EXTERNALSYM WM_QUERYENDSESSION}
WM_QUERYENDSESSION = $0011;
{$EXTERNALSYM WM_QUIT}
WM_QUIT = $0012;
{$EXTERNALSYM WM_MOUSEACTIVATE}
{ Edit Control Notification Codes }const
{$EXTERNALSYM EN_SETFOCUS}
EN_SETFOCUS = $0100;
{$EXTERNALSYM EN_KILLFOCUS}
EN_KILLFOCUS = $0200;
{$EXTERNALSYM EN_CHANGE}
EN_CHANGE = $0300;
{$EXTERNALSYM EN_UPDATE}
EN_UPDATE = $0400;
{$EXTERNALSYM EN_ERRSPACE}
EN_ERRSPACE = $0500;
{$EXTERNALSYM EN_MAXTEXT}
EN_MAXTEXT = $0501;
{$EXTERNALSYM EN_HSCROLL}
EN_HSCROLL = $0601;
{$EXTERNALSYM EN_VSCROLL}
EN_VSCROLL = $0602;{ Edit Control Messages }
WM_USER = $0400;{ Button Notification Codes }const
{$EXTERNALSYM BN_CLICKED}
BN_CLICKED = 0;
{$EXTERNALSYM BN_PAINT}
BN_PAINT = 1;const
{$EXTERNALSYM EM_GETSEL}
EM_GETSEL = $00B0;
{$EXTERNALSYM EM_SETSEL}
EM_SETSEL = $00B1;
{$EXTERNALSYM EM_GETRECT}
EM_GETRECT = $00B2;
{$EXTERNALSYM EM_SETRECT}
EM_CANUNDO = $00C6;
{$EXTERNALSYM EM_UNDO}
EM_UNDO = $00C7;
{$EXTERNALSYM EM_FMTLINES}
EM_FMTLINES = $00C8;
{$EXTERNALSYM EM_LINEFROMCHAR}
EM_LINEFROMCHAR = $00C9;
{$EXTERNALSYM EM_SETTABSTOPS}
}
SBM_GETSCROLLINFO = 234;{ Dialog messages }
type{ Generic window message record } PMessage = ^TMessage;
TMessage = packed record
Msg: Cardinal;
case Integer of
0: (
WParam: Longint;
LParam: Longint;
Result: Longint);
1: (
WParamLo: Word; TWMDestroy = TWMNoParams;
TWMDestroyClipboard = TWMNoParams;;
end; TWMInitMenu = packed record
d: HWND;
case Integer of
0: (
XPos: Smallint;
YPos: Smallint);
1: (
Pos: TSmallPoint;
Result: Longint);
end;implementationend.