MFC 自定义消息(消息数据传递)

本文介绍如何在C++中使用自定义消息ID WM_MSG,并通过MYMSG结构体发送和接收消息。展示了如何绑定消息函数、创建消息实例以及在CTestLogDlg类中处理这些消息。重点在于消息传递和对话框响应的实现。

自定义消息id

#define WM_MSG	WM_USER+100

绑定消息函数

	ON_MESSAGE(WM_MSG, OnMsg)

 实现onMsg函数

LRESULT CTestLogDlg::OnMsg(WPARAM wP, LPARAM lP)
{
	CString str;
	MYMSG* mymsg = (MYMSG*)(lP);
	str.Format(L"%s\r\n", mymsg->str);
	m_logshow.ReplaceSel(str);
	return 0;
}

其中MYMSG是我自定义的消息结构体

typedef struct mymsg {
	int msgid;
	CString str;
}MYMSG;

下面进行调用

void CTestLogDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	static int index = 0;
	m_logstr.Format(L"ssssss%d",index);
	index++;
	showlog(m_logstr);
}
void CTestLogDlg::showlog(CString str)
{
	MYMSG * mymsg = new MYMSG;
	mymsg->msgid = 1;
	mymsg->str = str;
	::PostMessage(::AfxGetMainWnd()->m_hWnd, WM_MSG, 0, (LPARAM)mymsg);
}

其中log显示框属性如下所示

结果如下所示

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值