Duilib 创建对话框与主窗口传递消息

这是主窗口中 根据你的需要 创建对话框代码 相信模态和非模态对话框的区别大家应该知道,这里不做论述

			CReturnDialog pReturnDialog ();
			pReturnDialog.Create(m_hWnd, _T(""), UI_WNDSTYLE_DIALOG, 0, 0, 0, 0, 0, NULL);
			pReturnDialog.CenterWindow();
			pReturnDialog.ShowModal(); //模态对话框

这是主窗体 消息接受代码 很简单 接收到对话框传过来的消息 你需要做的操作

LRESULT CMainWindowWnd::HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	LRESULT  lRes = 0;
	BOOL bHandled = TRUE;
	switch (uMsg)
	{
	case WM_CREATE: lRes = OnCreate(uMsg, wParam, lParam, bHandled); break;
	case WM_CLOSE: lRes = OnClose(uMsg, wParam, lParam, bHandled); break;
	case WM_DESTROY: lRes = OnDestroy(uMsg, wParam, lParam, bHandled); break;
    case WM_USER_RETURN_HOME:   //由对话框发送来的消息
	{
		您需要做的操作 建议封装成函数 像上面的OnCreate 一样
	}
	if (bHandled) return lRes;
		if (m_pm.MessageHandler(uMsg, wParam, lParam, lRes)) return lRes;
		return CWindowWnd::HandleMessage(uMsg, wParam, lParam);
	}

WM_USER_RETURN_HOME 为自定义消息 可以写在一个头文件中 定义如下:

   #ifndef MSGDEFINE_H_
		#define MSGDEFINE_H_
		#define WM_USER_RETURN_HOME     WM_USER + 2  //这里定义的自定义窗口类消息
		#endif

0 ~ WM_USER – 1 为 系统消息
WM_USER ~ 0x7FFF 为自定义窗口类整数消息
WM_APP ~ 0xBFFF 应用程序自定义消息
0xC000 ~ 0xFFFF 应用程序字符串消息
> 0xFFFF 为以后系统应用保留

对话框向主窗口传递消息

::PostMessage(::GetParent(m_hWnd),WM_USER_RETURN_HOME, NULL, NULL);
或者是 (两个都可以 看自己选择)
::SendMessage(::GetParent(m_hWnd),WM_USER_RETURN_HOME, NULL, NULL);

一定要加 :: 这里注意
Duilib 中的PostMessage 是向自己发送消息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值