MFC学习记录004——VS2019拖动没有标题栏的窗体(初学者详细步骤)

一、简介

工具:VS2019社区版

项目:拖动没有标题栏的窗体(即鼠标按住窗体空白处拖动)

二、步骤

(一)创建"MFC应用"项目

 给项目取个名字,选个路径(根据自己需要设置即可)——>点击“创建

 如果没有特殊要求,“应用程序类型”一般选择“基于对话框”——>点击“完成

 刚创建好的界面是这样的

 (二)去掉标题栏

为了效果,我们先把标题栏去掉,鼠标点击一下窗体的空白处,在“属性”窗口中找到“标题栏”,将其值改为“false”

 如果找不到“属性”窗口,可在界面最上面一排菜单栏,找到“视图”——>“属性窗口”就可以调出来

(三)代码实现

原本窗体是通过标题栏拖动的,但现在标题栏没有了,所以现在窗体直接运行的话是拖不了窗体的,接下来就需要通过代码来实现拖动窗体。

点击窗体的空白处,在“属性”窗口中先切换到“消息”栏(如下图所示),再找到鼠标移动的消息”WM_MOUSEMOVE“,然后添加鼠标移动事件(鼠标放到右边空白框里点一下,会出现一个下拉选项,点那个下拉选项就会自动创建鼠标移动事件)

 然后代码中会看到这一段(这段代码是自动添加的)

接下来,添加具体的事件 

 代码如下,这里只截取鼠标移动事件的代码

void CMoveFormDemoDlg::OnMouseMove(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	static CPoint PrePoint = CPoint(0, 0);
	if (MK_LBUTTON == nFlags)
	{
		if (point != PrePoint)
		{
			CPoint ptTemp = point - PrePoint;
			CRect rcWindow;
			GetWindowRect(&rcWindow);
			rcWindow.OffsetRect(ptTemp.x, ptTemp.y);
			MoveWindow(&rcWindow);

			return;
		}
	}
	PrePoint = point;

	CDialogEx::OnMouseMove(nFlags, point);
}

这样就可以拖动无标题栏的窗体了

三、运行

四、拓展

通过控件(ex.按钮)拖动无标题栏窗体

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值