PostMessage发送字符串和结构体

1.首先定义消息变量

#define WM_POST_MSG WM_USER + 2

2.增加消息处理函数

afx_msg LRESULT UpdateStatic(WPARAM wParam, LPARAM lParam);

3.增加消息映射

ON_MESSAGE(WM_POST_MSG,UpdateStatic)

当调用PostMessage函数时如下

CString  *msg = new CString("this is msg");
::PostMessage(m_hWnd,WM_POST_MSG,0,(LPARAM)msg);

关键在这个地方,为什么要new一个对象呢,先看接受消息函数怎么样处理的

LRESULT CPostMessageStringDlg::UpdateStatic(WPARAM wParam, LPARAM lParam)
{
	CString * temp = (CString *)lParam;
	MessageBox(*temp);
	delete temp;
	return 0L;
}

直接获得先前new对象的地址,因为在先前new的对象没有释放,还在堆中,所以处理函数能够通过参数传递过来的指针找到对象的位置,从而获得这个对象, 最后别忘了delete掉这个对象 。结构体也是如此。


转载于:https://my.oschina.net/zhaomengit/blog/169686

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值