【问题标题】:Resize native window调整本机窗口大小
【发布时间】:2010-07-12 10:44:40
【问题描述】:

有谁知道调整本机窗口大小的跨平台方法 - 我所说的本机是指在 Windows、Mac 或 Linux 的窗口工具包中运行的一种?

任何帮助将不胜感激!

【问题讨论】:

  • 没有 - C++ 本身没有图形功能。
  • 窗口是属于自己的应用还是属于其他应用?
  • 嗨,Thomas 该窗口将归另一个应用程序所有

标签: c++ windows linux macos cross-platform


【解决方案1】:

没有。仅使用标准 C++ 甚至没有跨平台的方式来创建和显示“本机窗口”。

使用工具包/框架提供跨平台的方法,提供独立于平台的窗口系统抽象,包括窗口创建、调整大小、自定义绘图、按钮等...:

  • Nokia 的 Qt:为其小部件使用原生绘图 API,这意味着一切看起来都“正确”,无需处理平台异常。拥有出色的文档和非常庞大的功能集。
  • wxWidgets:与 Qt 相同,尽管有些人认为缺少文档并且代码可能会变得混乱。
  • GTK+:在 Windows 上看起来很丑,用纯 c 编写(有 C++ 包装器,但仍然是 c)。

如果您真的想自己抽象平台的东西,您将不得不拆分源代码并重新实现上述项目已经拥有的所有内容,或者使用很多这样的#ifdef:

#ifdef _WIN32
    // windows specific code
#elif defined(somelinuxdefine?)
    //Linux code
#elif defined(somemacdefine?)
    // Mac code
#endif

这至少是非常困难、混乱和不可维护的。

【讨论】:

  • 嘿 rubenvb 感谢您的回复。我不是要创建本机窗口,但我只是在寻找一个工具包,它允许我根据命令调整特定本机窗口的大小。例如,Adobe Captivate 5 将根据您定义的预设自动调整您正在捕获的窗口的大小 - 所以必须有办法做到这一点。它不一定需要是跨平台的;如果我能让它在 Windows 和 OSX 上运行,那么我会很高兴。 Linux 现在不是一个直接的问题。有什么想法吗?
  • 不,抱歉,没有这方面的经验。
【解决方案2】:

对于 X11 -(例如 Linux,但不仅如此),

您可能对以下内容感兴趣:

  • xdotool by Jordan Sissel 的来源,导致“工具可以让您模拟键盘输入和鼠标活动、移动和调整窗口大小等”。

我不确定,但似乎还有 xdotool MacOSX 和 FreeBSD 端口。

【讨论】:

    猜你喜欢
    • 2011-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-15
    • 2011-02-28
    • 2013-03-29
    • 2015-06-01
    • 1970-01-01
    相关资源
    最近更新 更多