【问题标题】:Is it possible to create an OSX style dock toolbar in windows using MFC or .NET?是否可以使用 MFC 或 .NET 在 Windows 中创建 OSX 风格的停靠工具栏?
【发布时间】:2017-06-02 02:03:47
【问题描述】:

完全公开,我知道这个问题的答案是肯定的,但我希望有更好的方法。

我维护一个应用程序,它使用 MFC CAppBar 创建一个“停靠点”,可以停靠在屏幕的任何边缘或作为浮动窗口。它最初是在 90 年代编写的,并且已经更新到足以使其多年来保持工作状态。我正在寻找替换整个应用程序的解决方案,但我的谷歌搜索只返回在 MDI 类型应用程序中停靠窗口的结果,而不是停靠/固定应用程序本身。

有人可以为我指出一些可以处理这种行为的潜在类/框架的正确方向(或者至少是足够接近的东西,我可以将其作为替代方案提交)?

【问题讨论】:

    标签: .net mfc window


    【解决方案1】:

    您可以使用 WPF 创建一个特定大小和放置的窗口,其中 TopMost=true 和 WindowStyle=None。您应该能够通过处理 mousedown/mousemove 事件的某种组合来实现停靠功能。

    【讨论】:

    • 假的。如果您的答案是:“您必须自己为此编写代码”,为什么 WPF 会在 MFC 之外添加任何内容?它含糊不清,提出了解决问题的错误方法,完全没有解决问题。不知道,为什么这会获得赞成票。
    • OP 表达了创建“OSX 风格”停靠工具栏的愿望。假设这意味着不仅仅是 OS/2 样式的按钮网格,这意味着他们想要具有更好图形支持的东西,可以在不同的分辨率之间干净地缩放,并利用硬件加速来利用预期/固有的动画/过渡类型带有 OSX 风格的停靠工具栏。我不知道任何使用 MFC 创建所需输出的远程简单方法(花了很多年开发 MFC 应用程序)。
    • 几乎不可能猜到,为什么您认为 WPF 比某些未公开的子系统具有更好的图形支持。坦率地说,Mac OS X 的 Dock 中甚至都不需要硬件加速。但是,如果您坚持硬件加速是强制性的,那么使用 WPF 是利用它的最糟糕的方法。为什么要推荐一个强制所有代码通过托管接口的 API,只是为了与本机实现通信?为什么不建议改用合成引擎来结束这种疯狂?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多