C#下移除窗口的代码,求详细解释

lgw150 2011-10-09 04:29:45
public static void RemoveFrame(Window window)
{
const long WS_THICKFRAME = 0x00040000L;
const int GWL_STYLE = -16;
const int SWP_FRAMECHANGED = 0x0020;
const int SWP_NOSIZE = 0x1;
const int SWP_NOMOVE = 0x2;
const int SWP_NOZORDER = 0x4;
IntPtr hwnd = new System.Windows.Interop.WindowInteropHelper(window).Handle;
SetWindowLong(hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) ^ WS_THICKFRAME);
SetWindowPos(hwnd, IntPtr.Zero, 0, 0, 0, 0, SWP_FRAMECHANGED | SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER);
}

代码功能是清除窗口,请教一下这里的WS_THICKFRAME,GWL_STYLE等为什么赋这些值呢?请指教,谢谢!
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgw150 2011-10-09
  • 打赏
  • 举报
回复
嗯,谢谢两位的回答!
commandos 2011-10-09
  • 打赏
  • 举报
回复
WS_THICKFRAME,GWL_STYLE 是win32api 的消息。本质是个32位的整形数
你可以在X:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\WinUser.h 文件中找到这些api消息的定义( x代表你安装visual studio的目录)下的
WinUser.h 是vc的头文件

想把这些搞明白可以参考《windows 程序设计》一书
lgw150 2011-10-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 feixuyue 的回复:]

这些参数都是窗体样式,已经规定好了,比如WS_THICKFRAME表示windowsStyle单边框
[/Quote]
谢谢您的回答,您的意思是这些值也是已经规定好的是吧?请指教,谢谢!
feixuyue 2011-10-09
  • 打赏
  • 举报
回复
这些参数都是窗体样式,已经规定好了,比如WS_THICKFRAME表示windowsStyle单边框

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧