各位老师好,请教一个问题,我有时候在编程的时候需要处理一些通过消息传遍过来的数据,这些数据每次里面有字符串,要是数字还好处理字符串就比较难处理,

我收集了5种消息传递字符串的方法,结果用着都不是让我很满意

方法1:

发送方:

wParam = GlobalAddAtom('string...')

PostMessage(HWnd, WM_XYZ, wParam, 0)

接收方:

str = GlobalGetAtomName(wParam)

GlobalDeleteAtom(wParam)

方法2:

var s:string

begin

setlength(s,100);

s:='1111111';

postmessage(frm_handle,wm_user+100,integer(@s[1]),0);

方法3:

sTemp := Pchar(sData);

SendMessage(wHandle,WM_SETTEXT,0,Integer(sTemp));

方法4:

1.

TCommInfo = array[0..50] of Char;

szCommInfo : TCommInfo;

SendMessage(FormHandle, WM_COMMINFOMSG, 0, Integer(PChar(CommInfo)));

2.

CommInfo : String;

SendMessage(FormHandle, WM_COMMINFOMSG, 0, Integer(PChar(CommInfo)));

方法5:

单个字符传递

SendMessage(whwnd,WM_CHAR ,Integer(PChar(S)),0);

上面是我收集的方法,

我又仔细阅读了SendMessage 的函数原型, 知道他有一个返回值

LRESULT ,我现在想实现通过SENDMESSAGE函数的返回值来传递我的参数

LRESULT SendMessage(

HWND hWnd, // handle to destination window

UINT Msg, // message

WPARAM wParam, // first message parameter

LPARAM lParam // second message parameter

);

MSDN里面的解释,有个朋友用中文翻译了一下

/*

这个返回值就是由相应的响应消息函数的返回值。

例如:

有自定义消息:WM_USER

其响应函数:

LRESULT Cexample::OnUser(WPARAM wParam, LPARAM lParam)

{

//….

return 0;

}

则用SendMessage(hWnd, WM_USER, wParam, lParam);消息,其返回值应该为 0.

那么我在DELPHI里面写了一个窗口子类化的函数,

//消息处理函数

function NewWndProc(WindowHandle : hWnd; Msg : LongInt; ParamW : WParam; ParamL : LParam) : LongInt ; stdcall;

begin

If Msg = autolg.WM_KEY_FLAG Then //如果发送的是我的自定义消息则进入IF

begin

if ParamW=129990 then

begin

//上面的解释说是整个函数的返回值是Sendmessage

//函数的返回值,那么我这里用

result:=9999; //应该返回9999,可是函数返回

//的是0,请问要求得Sendmessage返回值是在这里吗,

//未我而来[编程群10307557] 提问

end;

end;

这个是我写的要求返回值的代码:

procedure TForm1.Button1Click(Sender: TObject);

var

msgType:integer;

msgN:integer;

xx:longint;

hwnd:thandle;

begin

msgType:= RegisterWindowMessage('FISH');

hwnd:=findwindow(nil,'冰淇淋');

xx:=Sendmessage(hwnd,msgtype,1122,0);

edit3.Text:=inttostr(xx); //这里用于显示

end;

sendmsg返回值_[求助]Sendmessage函数返回值相关推荐

  1. python怎么返回布尔值_尝试从函数返回布尔值

    您需要将"return incomp1==True"替换为"return True".然后像这样调用door1函数"incomp1=door1(inc ...

  2. (14年)2.写一个函数int func(int n)其返回值是n的逆序整数,例如n=123函数返回321.n=72839,函数返回93827

    #include <stdio.h> #include <stdlib.h> /*写一个函数int func(int n)其返回值是n的逆序整数 例如n=123.函数返回321 ...

  3. python一个函数调用另一个函数的返回值_在python函数中使用True,False和None作为返回值...

    建议不是你不应该使用True,False或None.这只是你不应该使用如果x == True. 如果x == True是愚蠢的,因为==只是一个二进制运算符!它的返回值为True或False,取决于它 ...

  4. php7 返回值,7.6.4 函数返回值

    ### 7.6.4 函数返回值 调用内部函数时其返回值指针作为参数传入,这个参数为`zval *return_value`,如果函数有返回值直接设置此指针即可,需要特别注意的是设置返回值时需要增加其引 ...

  5. python return返回值_Python return语句 函数返回值

    return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天就来仔细的讲解一下. python 函数返回值 ...

  6. linux如何拿到文件的返回值,linux 下read函数返回值分析

    原文出处:http://blog.chinaunix.net/space.php?uid=20558494&do=blog&id=2803003 read函数是Linux下不带缓存的文 ...

  7. 函数的返回值,C语言函数返回值详解

    看旋转编码器程序的时候,遇见了一些关于函数返回值的函数,感觉很懵逼,就百度了一下C语言函数调用,感觉写的挺好的, 原链接:http://c.biancheng.net/view/204.html 通常 ...

  8. linux获取命令的返回值,Shell $?:获取函数返回值或者上一个命令的退出状态

    $?是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值. 所谓退出状态,就是上一个命令执行后的返回结果.退出状态是一个数字,一般情况下,大部分命令执行成功会返回0,失败返回1,这和C ...

  9. python函数默认返回值_python笔记20_函数返回值

    主要内容: 小目标:掌握函数返回值 主要内容:return语句,返回多个参数 如果看完这篇文章,你还是弄不明白函数返回值: 你来找我,我保证不打你,我给你发100的大红包. 1. 函数默认返回值 Py ...

最新文章

  1. swift_002(Swift的String的基本使用)
  2. 阶段1 语言基础+高级_1-2 -面向对象和封装_18定义一个标准的类
  3. java中XPATH操作xml,非常便捷
  4. python或anaconda下安装opencv提示Error:No matching distribution found for opencv
  5. logistic回归 简介_从零实现机器学习算法(四)Logistic回归
  6. sql找出2000-3000年中的闰年。_跟飞哥学编程:SQL入门-4-查询和条件
  7. 【Python】安装IPython和IPthon Notebook
  8. ThreadLocal 遇上线程池的问题及解决办法
  9. 《算法图解》第八章之贪婪算法
  10. iOS 深度跳转(scheme、universal link)
  11. python检查验证_Python:在时间、日期之间进行检查。验证日期
  12. 大三期末网页设计作业 以旅游景点风景主题介绍网站设计与实现 (广东名胜古迹)
  13. 昌德科技冲刺上市:计划募资约12亿元,蒋卫和为实控人
  14. Win10 WSL2 linux 子系统安装Docker
  15. 智能手持终端CPU选型报告
  16. SPSS—回归—多元线性回归结果分析(二)
  17. 免费开源动画制作软件推荐(新手必备)
  18. 【mba项目管理论文】S 公司项目管理绩效评价现状与问题(节选)
  19. python找不到scripts文件夹_快速解决安装python没有scripts文件夹的问题
  20. VMware 15 出现的EFI VMware Virtual SCSI Hard Drive(0,0) …. unsuccessful、Directory “EZBOOT“ not found问题

热门文章

  1. JEPF软件快速开发平台【免费发布】
  2. 软件著作权申请注意事项——计算机软件著作权登记申请(R11申请)流程
  3. 字体随浏览器缩放变化
  4. 什么是激光雷达?及激光雷达主要应用在哪些领域?
  5. Android 中的权限
  6. 生物信息学|疾病预测的个体特定边网络分析
  7. STM32F429移植LVGL
  8. linux 下oracle备份脚本,linux 下的 oracle 自动备份脚本
  9. 简单方法实现仿超级课程表界面
  10. ios微信二维码无法长按识别的若干解决方案