去除窗体边框 去除非客户区WM_NCCALCSIZE WM_SYSCOMMAND

WM_NCCALCSIZE是非客户区计算大小消息,return 0会将非客户区大小设为0。
会去除非客户区:阴影,关闭最大最小化按钮,标题栏,边框,图标。
窗口照样可以响应:win+←↑↓→按键,拖动窗口到屏幕边缘自动排列。

	case WM_NCCALCSIZE:return 0;

注意:去除边框会导致无法调整大小,需要自行处理WM_NCHITTEST消息

	case WM_NCHITTEST:
	{
		POINT pt; pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); ScreenToClient(hWnd, &pt);//鼠标位置
		RECT rect; GetClientRect(hWnd, &rect);//客户区矩形
		if (!IsZoomed(hWnd))//最大化时不用调整大小
		{
			int x = 9;//边框宽度
			if (pt.x < rect.left + x)
			{
				if (pt.y < rect.top + x)return HTTOPLEFT;//左上角
				if (pt.y > rect.bottom - x)return HTBOTTOMLEFT;//左下角
				return HTLEFT;//左边
			}
			if (pt.x > rect.right - x)
			{
				if (pt.y < rect.top + x)return HTTOPRIGHT;//右上角
				if (pt.y > rect.bottom - x)return HTBOTTOMRIGHT;//右下角
				return HTRIGHT;//右边
			}
			if (pt.y < rect.top + x)return HTTOP;//上边
			if (pt.y &
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值