【问题标题】:WinApi - How To Modify Console Window?WinApi - 如何修改控制台窗口?
【发布时间】:2013-08-05 09:08:16
【问题描述】:

我想要修改我的控制台窗口。我拿到了把手。 this 有助于改变它。但是我怎么能

  • 移除关闭按钮
  • 移除最大化按钮
  • 移除图标
  • 禁用调整大小

?

// C# syntax
StringBuilder buffer = new StringBuilder(260);
IntPtr window = FindWindow(null, buffer.ToString(0, GetConsoleTitle(buffer, buffer.Capacity)));

uint a = (uint)((WS_BORDER | WS_CAPTION) & (~WS_ICONIC));
SetWindowLongPtr(window, -16, new IntPtr(a)); // GWL_STYLE = -16

由于某种原因,此调用后窗口已损坏。我不能再用鼠标移动它,所有的点击都会通过它进入其他窗口。

【问题讨论】:

    标签: winapi console window


    【解决方案1】:

    您删除了所有窗口样式,只添加了WS_BORDERWS_CAPTION。你应该做的是:

    1. 调用GetWindowLongPtr读取当前窗口样式。
    2. 对要删除的样式执行按位求反 AND
    3. 调用SetWindowLongPtr设置窗口样式。

    【讨论】:

    • 好的,谢谢!只是我自己发现的。而且效果很好。 ^^