通过向父亲窗口发送消息,要求其他窗口对其进行销毁

原创 2005年03月03日 11:27:00
通过向父亲窗口发送消息,要求其他窗口对其进行销毁:首先需要定义一个消息用于进行通知,然后在对话框中映射WM_DESTROY消息,在消息处理函数中调用消息发送函数通知其他窗口。在接收消息的窗口中利用ON_MESSAGE映射处理消息的函数,并在消息处理函数中删除对话框对象。相关代码如下:
/*更改对话框的有关文件*/
CTestDlg2::CTestDlg2(CWnd* pParent /*=NULL*/)
	: CDialog(CTestDlg2::IDD, pParent)
{/*m_pParent为一成员变量,用于保存通知窗口的指针,
所以该指针不能是一个临时指针*/
	ASSERT(pParent);
	m_pParent=pParent;
	//{{AFX_DATA_INIT(CTestDlg2)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}
void CTestDlg2::OnOK()
{
	CDialog::OnOK();
	DestroyWindow();
}

void CTestDlg2::OnCancel()
{
	CDialog::OnCancel();
	DestroyWindow();
}

void CTestDlg2::OnDestroy() 
{
	CDialog::OnDestroy();
	/*向其他窗口发送消息,将自身指针作为一个参数发送*/
	m_pParent->PostMessage(WM_DELETE_DLG,);
}

/*在消息接收窗口中添加消息映射*/
/*在头文件中添加函数定义*/
	
/*添加消息映射代码*/
	
END_MESSAGE_MAP()
/*实现消息处理函数*/
LONG CMy53_s1View::OnDelDlgMsg(WPARAM wP,LPARAM lP)
{
	delete ;
	return 0;
}
/*创建对话框*/
void CMy53_s1View::OnTest2() 
{
	CTestDlg2 *dlg=new CTestDlg2(this);
	dlg->Create(IDD_TEST_DLG_2);
	dlg->ShowWindow(SW_SHOW);
}
在这种方法中我们利用消息来进行通知,在Window系统中利用消息进行通知和传递数据的用法是很多的。

同样无模式对话框的另一个作用还可以用来在用户在对话框中的输入改变时可以及时的反映到其他窗口。下面的代码演示了在对话框中输入一段文字,然后将其更新到视图的显示区域中,这同样也是利用了消息进行通知和数据传递。

/*在对话框中取出数据,并向其他窗口发送消息和数据,将数据指针作为一个参数发送*/
void CTestDlg2::OnCommBtn() 
{
	char szOut[30];
	GetDlgItemText(IDC_OUT,szOut,30);
	
}

/*在消息接收窗口中*/
/*映射消息处理函数*/
	

/*在视图中绘制出字符串 m_szOut*/
void CMy53_s1View::OnDraw(CDC* pDC)
{
	CMy53_s1Doc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	pDC->TextOut(0,0,"Display String");
	pDC->TextOut(0,20,m_szOut);
}
/*处理通知消息,保存信息并更新显示*/
LONG CMy53_s1View::OnDlgNotifyMsg(WPARAM wP,LPARAM lP)
{
	
	Invalidate();
	return 0;
}

向进程的主窗口发送消息程序

  • 2009年07月31日 07:26
  • 11KB
  • 下载

在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用) .

前一段时间使用MFC写程序的时候,为了实现从一个窗口向另一个窗口发送消息,使用过下面两种方法 /*方法一:通过用SDK的标准API来查找其他对话框窗口返回句柄,并且发送信息 HWND hWnd...

向进程的主窗口发送消息

  • 2009年07月31日 01:09
  • 13KB
  • 下载

AfxWnd42 qq2006中怎样取得发送消息窗口中的Richedit

qq2006中怎样取得发送消息窗口中的Richedit 检举|2006-11-10 02:20hzp997 | 分类:Windows | 浏览1695次 学习编程中想让程序可以自动在QQ的...

WPF无边框发送消息改变窗口大小

用WPF做的无边框窗口真的很漂亮,但无法像有边框窗口操作方便,上篇转载别人通过捕获WM_NCHITTEST消息来完成改变大小和拖动功能,是通过传过来的lParam里面的鼠标位置坐标(相对与屏幕),把指...

在MFC中从一个线程工作函数中向窗口发送消息(this指针的妙用)

前一段时间使用MFC写程序的时候,为了实现从一个窗口向另一个窗口发送消息,使用过下面两种方法 /*方法一:通过用SDK的标准API来查找其他对话框窗口返回句柄,并且发送信息 HWND hWnd; ...
  • gukesdo
  • gukesdo
  • 2011年10月19日 10:30
  • 7712

借助Spy++向指定的窗口发送消息—2

借助Spy++向指定的窗口发送消息—2 分类: 工作2008-08-20 10:58 2475人阅读 评论(0) 收藏 举报 windowswinformapplicationst...

C#中发送消息给指定的窗口,以及接收消息

http://blog.sina.com.cn/s/blog_90b91bf10100zj77.html

TrackMouseEvent函数在鼠标离开某一窗口或在某一窗口上停留超过某一特定时间长度时发送消息(转)

TrackMouseEvent函数在鼠标离开某一窗口或在某一窗口上停留超过某一特定时间长度时发送消息。其函数原型: BOOL TrackMouseEvent(LPTRACKMOUSEEVENT lp...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过向父亲窗口发送消息,要求其他窗口对其进行销毁
举报原因:
原因补充:

(最多只允许输入30个字)