请问各位高手自定义消息的ID号 是怎样与消息的数据结构关联在一起的呢
如
const My_OnMove=WM_USRE+100;
type TMYOnMove=Packed Record
msg:integer;
left:integer;
end; 我应用程序内部发送一个消息MY_OnMove 程序怎么知道MY_OnMove的结构是TMYOnMove呢
是怎么关联在一起的.
如
const My_OnMove=WM_USRE+100;
type TMYOnMove=Packed Record
msg:integer;
left:integer;
end; 我应用程序内部发送一个消息MY_OnMove 程序怎么知道MY_OnMove的结构是TMYOnMove呢
是怎么关联在一起的.
解决方案 »
- 用openDialog选择EXE后提取其ICO然后显示在ListView里
- 怎样手动安装ODBC数据源驱动程序啊?
- 如何互换listview里的items?
- 一个非常奇怪的问题
- 如何记录某个程序窗口的鼠标键盘动作,并重放?
- 如何開發以下後台程序
- 我该用什么工具开发(显示和输入端)请大家讨论(UP有分)
- 哪里可以下载 DELPHI6 DEVELOPER'S GUIDE 这本书?
- 请教高数关于delphi程序通过RAS或Citrix远程使用无法打开打印机的问题,急等!!!!!
- 填空题!HTTP控件的post方法的参数问题。
- 我想把MainMenu的一个SubMenu和一个PopupMenu同步,如何操作?
- 创建表的表名
SendMessage( hWnd, MSG_YOUR, wParam, LPARAM( @Rec ) )接受p: PRec;p := PRec( msg.lParam );就是利用这个 LPARAM OR WPARAM(一般用LPARAM) 传一个地址过去就是 接受方 进行类型转换 即可注意 这里用的是 SendMessage 不是 PostMessage, 不然你接受方的数据很可能不正确.
比较简单的方式是定义消息处理函数:procedure MyOnMove( var msg: TMYOnMove ); message My_OnMove;
1.
type
TTest = packed record
Id: Cardinal;
Name: array[0..9] of Char;
end;procedure TForm1.Foo(var Msg: TMessage);
var
P: ^TTest;
begin
P:=Pointer(Msg.LParam);
Caption:=Format('%d, %s', [P.Id, P.Name]);
end;procedure TForm1.Button1Click(Sender: TObject);
var
Test: TTest;
begin
Test.Id:=47;
Test.Name:='Leon';
SendMessage(Handle, WM_USER+1000, 0, Integer(@Test));
end;2.
type
TTest = packed record
Id: Cardinal;
Name: array[0..9] of Char;
end;procedure TForm1.Foo(var Msg: TMessage);
var
P: ^TTest;
begin
P:=Pointer(Msg.LParam);
Caption:=Format('%d, %s', [P.Id, P.Name]);
Dispose(P);
end;procedure TForm1.Button1Click(Sender: TObject);
var
P: ^TTest;
begin
New(P);
P.Id:=47;
P.Name:='Leon';
PostMessage(Handle, WM_USER+1000, 0, Integer(P));
end;
WM_KEYDOWN -> TWMKeyDown
WM_GETTEXT -> TWMGetText
尤其是自定义消息。