sendmessage这个发送消息的函数如何发送字符串
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sendmessage这个发送消息的函数如何发送字符串相关的知识,希望对你有一定的参考价值。
sendmessage这个发送消息的函数如何发送字符串??
参考技术A 首先说怎么发送,然后说怎么接收:自己定义一个消息,加上一个消息响应函数。然后用SendMessage把字符串的地址发过去。
比如VC环境:
在stdafx.h中,
#define MY_MESSAGE USER+1
定义一个函数用来发送,可以是定时器,可以是按钮。
void send()
CString str;
str = "12345";
::SendMessage(hWnd,MY_MESSAGE ,(WPARAM)&str);
在你的类头文件.h中:
afx_msg void MyFunction(WPARAM wParam,LPARAM lParam);
在.cpp中
BEGIN_MESSAGE_MAP下面加入:
ON_MESSAGE(MY_MESSAGE ,MyFunction)
在后面加上你的函数体
void 你的类名::MyFunction(WPARAM wParam,LPARAM lParam)
//如果你发送的字符串的地址在WPARAM中,则用WPARAM来接收
CString* pStr = (CString*)wParam.
AfxMessageBox(*pStr);
你要注意的是:这只能适合SendMessage,如果你要使用PostMessage,就要把你发送的字符串设定为类的成员,或者全局的,不能是临时变量。因为SendMessage是要让消息响应函数执行完了才会返回,所以str是不会被系统释放的。PostMessage是直接返回,于是你传了一个str的地址过去,但是消息响应函数执行的时候,str已经被删除了,这个时候的地址是一个不可知的内容,程序就会发生内存泄露,所以还是推荐你定义一个字符串专门用来发送。 参考技术B hwnd为句柄 s为字串,这是delphi下的
SendMessage(hwnd, $0286,(ord(S[i]) shl 8) + ord(S[i+1]) , 0);中文
SendMessage(hwnd, $0286,word('=') ,0); 字符
猎豹MFC--发送消息SendMessage PostMessage
添加图片控件:
效果如下:
先添加文字说明:
打开头文件 定义变量:
在对话框初始化代码部分 添加如下代码:
当鼠标左键按下去LButtonDown的时候 实现拖动:
设置布尔变量记录,设置捕获 ,设置光标:
如果处于捕获状态:
释放捕获
布尔变量设置为假
定义鼠标坐标
把 鼠标坐标 由语原来窗体客户区转换为屏幕区
由点获取窗口句柄
类型转换
在文本框中显示窗口句柄
效果 如下:
由窗口句柄获取窗口类名:
再由窗口句柄发送WM_GETTEXT 消息获取窗口标题”
效果如下:
双击button1按钮:修改标题:
发送关闭消息:
以上是关于sendmessage这个发送消息的函数如何发送字符串的主要内容,如果未能解决你的问题,请参考以下文章