SendMessage()传递字符串

SendMessage函数的原型为

LRESULT SendMessage(
  HWND hWnd,
  UINT Msg,
  WPARAM wParam,
  LPARAM lParam
);

用于消息传递,其中有WPARAM 和 LPARAM 两个附加参数,可以传递一些附加信息,由于它们是long 型的,所以只能

传递数字,如果想要传递字符串之类的则需要使用指针,即字符串的地址。

下面是一个小例子:(我用的是VS2008、Unicode编码)

      步骤:

1、新建一个基于对话框的MFC项目程序 ---- SendMessage

2 、在主对话框中添加一按钮

3、为按钮添加事件处理程序(左击事件),代码如下

void CSendMessageDlg::OnBnClickedButton1()
{
 // TODO: 在此添加控件通知处理程序代码
 CString* msg = new CString("发送的字符串");
 ::SendMessage(this->m_hWnd,WM_USER+1,0,(LPARAM)msg);
 delete msg; 
}

4、添加消息响应函数

      在SendMessageDlg.h 头文件中添加      afx_msg HRESULT OnClickBtn1(WPARAM,LPARAM);

      在SendMessageDlg.cpp 源文件中添加   ON_MESSAGE(WM_USER+1,OnClickBtn1)     

                  (即BEGIN_MESSAGE_MAP(CSendMessageDlg, CDialog)

                     .....

                        END_MESSAGE_MAP() 里面)

     在 SendMessageDlg.cpp 的最后添加函数定义

HRESULT CSendMessageDlg::OnClickBtn1(WPARAM wParam,LPARAM lParam)
{
 CString* rmsg = (CString*)lParam;
 MessageBox(*rmsg);
 return TRUE;
}

 

转载于:https://www.cnblogs.com/anhuizhxd/archive/2009/06/29/sendMessage.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值