码迷,mamicode.com
首页 > 其他好文 > 详细

实现两个对话框间的通信

时间:2014-10-18 03:05:27      阅读:212      评论:0      收藏:0      [点我收藏+]

标签:对话框   通信 对话框非模态 ::findwindow() ::getdlgitem ::setwindowtext

函数功能:实现两个对话框间的通信。父窗口通过点击openSubDlg按钮(IDC_BTN_OPEN)弹出子对话框(非模态),通过点击Send按钮(IDC_BTN_SEND)实现将编辑框中(IDC_EDIT_SEND)的内容发送到子对话框的编辑框(IDC_EDIT_RECEIVE)内容。同理,子对话框可通过点击Send按钮(IDC_BTN_SEND)实现将其编辑框中的内容发送给父对话框的编辑框。


实现方法:对父对话框来说:通过::FindWindow()方法找到子对话框的句柄,在通过::GetD两个Item()方法找到子对话框中的编辑框控件句柄,最后通过::SetWindowText()方法将父编辑框内容发送到子编辑框中。反之亦然。


代码:

1.在OnInitDialog(或OnCreate())中设置对话框标题,方便通过::FindWindow()找到句柄。这里,将父对话框标题设为Parent,子对话框标题为SubDialog。

父对话框:
2.双击OpenSubDlg按钮,添加单击事件响应:

void CSendMessageDemoDlg::OnBtnOpen() 
{
	// TODO: Add your control notification handler code here
	CSubDlg *subdlg = new CSubDlg;
	BOOL flag = subdlg->Create(IDD_SUBDIALOG1,NULL);
	if(!flag)
	{
		MessageBox("Open SubDlg Failed");
	}
	subdlg->ShowWindow(SW_SHOWNORMAL);
}

3.双击Send按钮,添加单击事件响应:
void CSendMessageDemoDlg::OnBtnSend() 
{
	// TODO: Add your control notification handler code here
	CString str;
	GetDlgItemText(IDC_EDIT_SEND,str);
	HWND hSub = ::FindWindow(NULL,"SubDialog");
	if(hSub == NULL)
	{
		MessageBox("Failed to find SubDialog");
		return;
	}
	HWND hEdit = ::GetDlgItem(hSub,IDC_EDIT_RECEIVE);
	if(hEdit == NULL)
	{
		MessageBox("Failed to find SubDialog‘s control");
		return ;
	}
	::SetWindowText(hEdit,str);
}

子对话框
4.双击双击Send按钮,添加单击事件响应:
void CSubDlg::OnBtnSend() 
{
	// TODO: Add your control notification handler code here
	CString str;
	GetDlgItemText(IDC_EDIT_RECEIVE,str);

	HWND hParent = ::FindWindow(NULL,"Parent");
	if(hParent == NULL)
	{
		MessageBox("Fail to find Parent‘s Handle");
		return;
	}
	HWND hEdit = ::GetDlgItem(hParent,IDC_EDIT_SEND);
	if(hEdit == NULL)
	{
		MessageBox("Fail to Search the Control");
		return;
	}
	::SetWindowText(hEdit,str);
}

运行效果:

bubuko.com,布布扣


bubuko.com,布布扣

本文出自 “whatever957” 博客,请务必保留此出处http://whatever957.blog.51cto.com/6835003/1565349

实现两个对话框间的通信

标签:对话框   通信 对话框非模态 ::findwindow() ::getdlgitem ::setwindowtext

原文地址:http://whatever957.blog.51cto.com/6835003/1565349

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!