pb SendMessage
2015-10-23 10:08
218 查看
PB发送和接收消息send SendMessage
1.用PB自带的SEND函数发送消息 传字符:Send(Handle(w_main),1600,0,'dfdfd') 传LONG:Send(Handle(w_main),1600,0,123)
2.用API发送LONG类型消息,申明:
Function long SendMessage(long hwnd,long wMsg,long wParam,long lParam) Library "user32.dll" Alias for "SendMessageA"
发送:SendMessage(Handle(w_main),1600,0,123)
接收方法:
Other事件代码:
if message.number=1600 then
string ls_tmp
ls_tmp=string(message.LongParm)
messagebox("",ls_tmp)
end if
3.用API发送string类型消息,申明:
Function long SendMessage(long hwnd,long wMsg,long wParam,string lParam) Library "user32.dll" Alias for "SendMessageA"
发送:SendMessage(Handle(w_main),1600,0,'123')
接收方法:
Other事件代码:
if message.number=1600 then
string ls_tmp
ls_tmp=string(message.LongParm,'address') //注意这里接收字符的方法
messagebox("",ls_tmp)
end if
******************
DELPHI中给PB窗口发消息,用函数 SendMessage 默认的不能发STRING 类型,必须自己申明一下函数:
function SendMessageAA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: string): LRESULT; stdcall; external 'user32.dll' name 'SendMessageA';
发送代码:
AData := 'ABC';
SendMessageAA(FHandle,WM_NETWORKMSG,0,AData);
搞了很久,才弄出来,和大家分享一下这个发送消息的方法。
*******************
另一个接收消息的方法
申明:
function long GlobalGetAtomName(long ATOM,ref string lpBuffer,integer nSize) Library "kernel32.dll" Alias for "GlobalGetAtomNameA"
function long GlobalDeleteAtom(long ATOM) Library "kernel32.dll"
other事件调用:
if message.number=1600 then
string ls_tmp
long ll_return
ls_tmp=space(50)
ll_return=GlobalGetAtomName(message.LongParm,ls_tmp,50)
GlobalDeleteAtom(message.LongParm)
messagebox("",ls_tmp)
end if
1.用PB自带的SEND函数发送消息 传字符:Send(Handle(w_main),1600,0,'dfdfd') 传LONG:Send(Handle(w_main),1600,0,123)
2.用API发送LONG类型消息,申明:
Function long SendMessage(long hwnd,long wMsg,long wParam,long lParam) Library "user32.dll" Alias for "SendMessageA"
发送:SendMessage(Handle(w_main),1600,0,123)
接收方法:
Other事件代码:
if message.number=1600 then
string ls_tmp
ls_tmp=string(message.LongParm)
messagebox("",ls_tmp)
end if
3.用API发送string类型消息,申明:
Function long SendMessage(long hwnd,long wMsg,long wParam,string lParam) Library "user32.dll" Alias for "SendMessageA"
发送:SendMessage(Handle(w_main),1600,0,'123')
接收方法:
Other事件代码:
if message.number=1600 then
string ls_tmp
ls_tmp=string(message.LongParm,'address') //注意这里接收字符的方法
messagebox("",ls_tmp)
end if
******************
DELPHI中给PB窗口发消息,用函数 SendMessage 默认的不能发STRING 类型,必须自己申明一下函数:
function SendMessageAA(hWnd: HWND; Msg: UINT; wParam: WPARAM; lParam: string): LRESULT; stdcall; external 'user32.dll' name 'SendMessageA';
发送代码:
AData := 'ABC';
SendMessageAA(FHandle,WM_NETWORKMSG,0,AData);
搞了很久,才弄出来,和大家分享一下这个发送消息的方法。
*******************
另一个接收消息的方法
申明:
function long GlobalGetAtomName(long ATOM,ref string lpBuffer,integer nSize) Library "kernel32.dll" Alias for "GlobalGetAtomNameA"
function long GlobalDeleteAtom(long ATOM) Library "kernel32.dll"
other事件调用:
if message.number=1600 then
string ls_tmp
long ll_return
ls_tmp=space(50)
ll_return=GlobalGetAtomName(message.LongParm,ls_tmp,50)
GlobalDeleteAtom(message.LongParm)
messagebox("",ls_tmp)
end if
相关文章推荐
- 垂直的seekbar
- linux系统下创建oracle表空间和用户权限查询。转自http://www.2cto.com/os/201212/173801.htmllinux系统下创建oracle表空间和用户权限查询 创
- 【图文详细】使用Eclipse编译运行MapReduce程序_Hadoop_2.4.1
- 如何在Quagga BGP路由器中设置IPv6的BGP对等体和过滤
- 一分钟理解“工厂模式”
- uva10720(Graph Construction)贪心+havel定理
- Mysql学习笔记之常用数据类型
- 将一个数组快速反序排列
- 学习Git--lesson 1_Fundamental Git workflow
- yum install
- 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)
- 2015-10-23mysql数据库数据导入
- 互联网5大潜规则
- 在获取用户信息时,提示,"errcode": 48001, 接口未被授权
- 微信自定义菜提示 “{“errcode”:40001,”errmsg”:”invalid credential”}”
- zabbix2.4 微信报警
- 结婚感言
- Spark1.5.1学习笔记(一)Standalone集群配置
- spring整合redis
- iOS常见错误