WM_NCCREATE与WM_CREATE的区别

WM_NCCREATE与WM_CREATE在字面上区别就是多了一个NC,那这个NC意思就是non-client 非客户区,而这个非客户区就包括标题栏、窗口边框、最大、最小按钮、滚动条等。

在消息定义里面,有一些消息有两种,一种是加NC的,一种是不加NC的,而我们经常使用不加NC的。

WM_NCCLIENT 消息在 WM_CREATE 之前,WM_NCDESTROY 在 WM_DESTROY 之后。先创建非客户区,再创建客户区;先销毁客户区,再销毁非客户区。

参考https://bbs.csdn.net/topics/350112762

WM_NCCREATE 是一个窗口消息,用于在创建非客户区(Non-Client Area)时调用窗口过程。它有两个参数: 1. wParam:保留参数,未使用。 2. lParam:一个指向 CREATESTRUCT 结构的指针,其中包含创建窗口时的附加信息。 CREATESTRUCT 结构包含以下成员: 1. lpCreateParams:创建窗口时指定的附加参数。 2. hInstance:包含窗口所属模块的实例句柄。 3. hMenu:窗口的菜单句柄。 4. hwndParent:父窗口的句柄。 5. cy:窗口的高度(以像素为单位)。 6. cx:窗口的宽度(以像素为单位)。 7. y:窗口的初始垂直位置(以屏幕坐标为单位)。 8. x:窗口的初始水平位置(以屏幕坐标为单位)。 9. style:窗口的样式。 10. lpszName:窗口的标题。 11. lpszClass:窗口类名。 如果你想去除默认的UI样式,可以在创建窗口之前修改窗口的样式。在.NET中,你可以使用 Control 类的 CreateParams 属性来设置样式。例如,如果你想去除窗口边框和标题栏,可以将样式设置为 WS_POPUP 并且没有 WS_CAPTION 和 WS_SYSMENU 样式。具体的代码示例如下: ```csharp protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.Style &= ~WS_BORDER; // 去除边框样式 cp.Style &= ~WS_CAPTION; // 去除标题栏样式 cp.Style &= ~WS_SYSMENU; // 去除系统菜单样式 return cp; } } ``` 请注意,上述的代码示例是针对.NET桌面应用程序的。如果你是在其他平台或使用其他编程语言开发应用程序,请查阅相关文档以获取相应的方法和属性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

顺其自然~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值