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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值