MFC实现对话框的停靠窗口

本文介绍了在VS2019中使用MFC创建不带边框的对话框,并将其作为停靠窗口的步骤。首先,通过设置对话框属性为无边框和子窗口风格。然后,创建CDockablePane类的子类,并在CMainFrame中添加成员变量。接着,将对话框关联到停靠窗口。最后,在CClassView的OnSize方法中处理WM_SIZE消息,以实现对话框的适配。

**

MFC实现对话框的停靠窗口

**
VS2019,建立MFC应用,设置高级中去除默认停靠窗口。
1.对话框建立
1.1插入Dialog,ID改为DIALOG_SET;
1.2对话框的属性设置 border->None,style->child
1.3添加相关控件
1.4右键单击添加MFC类CSetting
在这里插入图片描述

2.停靠窗口建立
2.1类导向->添加MFC类->基类CDockablePane
在这里插入图片描述
2.2MainFrm.h中添加 pubilc成员 :CClassView m_wndClassView;
2.3类视图->CMainFrame->消息MW_Create
在这里插入图片描述

if (!m_wndClassView.Create(_T("Title"), this, CRect(0, 0, 200, 200), TRUE, ID_SET, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
	{
		TRACE0("Failed to create Class View window\n");
		return FALSE; // failed to create
	}

	m_wndClassView.EnableDocking(CBRS_ALIGN_ANY);
	DockPane(&m_wndClassView);

此时运行已有空停靠窗口
3.关联对话框和停靠窗口
3.1 CClassView中添加pubilic成员CSetting SET;(头文件"CSetting.h")
3.2CClassView->OnCreate中添加

SET.Create(DIALOG_SET, this);
SET.ShowWindow(SW_SHOW);

在这里插入图片描述

3.3 此时对话框已挂载在停靠窗但边框不适配
CClassView->OnSize中添加 (消息WM_SIZE)
在这里插入图片描述

if (SET.GetSafeHwnd())
	{
		CRect rect;
		GetClientRect(&rect);
		SET.MoveWindow(rect);
	}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值