【问题标题】:C/C++/C# SetWindowPos: Window on top of othersC/C++/C# SetWindowPos:在其他窗口之上的窗口
【发布时间】:2010-12-24 21:05:56
【问题描述】:

我希望有人提供SetWindowPos 的工作示例,说明如何使用 C/C++/C# 将窗口设为“最顶层”(位于最顶层并留在那里)。提前致谢!

【问题讨论】:

  • MSDN 示例有什么问题?
  • 确实,答案就在眼前:)
  • 确切的方法在 C/C++ 和 C# 之间会有很大的不同,因此您可能应该指定您打算使用这三个中的哪一个。
  • @Erik:两者都可以接受@Naveen 和 Pieter888:什么 MSDN 示例?

标签: c# c++ c winapi


【解决方案1】:

C/C++:

// This doesn't size or move the window, just makes it top-most.
SetWindowPos( hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE );

【讨论】:

  • 这个我不明白,我怎么告诉它哪个应用程序在上面?
  • hWnd 参数指定应该移到顶部的窗口。
【解决方案2】:

【讨论】:

    【解决方案3】:

    C#

    this.TopMost = true;
    

    【讨论】:

    • 这对除申请表外的其他窗口没有帮助。
    【解决方案4】:

    前段时间遇到这个问题,问了here这个问题。我的问题的实际细节可能与您的不同,但以防万一,我将总结我的问题和答案。

    我需要在某个特定 (WPF) 应用程序运行期间始终保持其最重要的位置,以尝试拒绝访问机器上的其他软件。我最终每 1/4 秒运行一个计时器,它调用 user32.dll 的 SetForegroundWindow(IntPtr hWnd) 方法来获取应用程序的焦点,同时在我的窗口上设置 TopMost = true

    HTH

    【讨论】:

      猜你喜欢
      • 2023-01-27
      • 2015-11-08
      • 1970-01-01
      • 2021-07-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      相关资源
      最近更新 更多