代码之家  ›  专栏  ›  技术社区  ›  Edward Strange

用于MFC的网格、flexgrid或gridbag布局

  •  8
  • Edward Strange  · 技术社区  · 14 年前

    MFC似乎严重缺乏布局管理器/尺寸管理器。很难相信任何有自尊心的UI库都会缺少sizer,但现在你可以了。我已经找到了一些可以处理通常的方框布局的东西,但是我没有找到一个尺寸器,当你需要东西在垂直和水平方向上对齐时,当它们展开时,它会有帮助。

    我从这里得到了很多信息:

    layout manager for MFC dialog apps

    我搜索过网络,每次搜索MFC和网格/任何东西/结果都会把我发送到一堆网格小部件,而不是sizer。有这样的事吗?

    2 回复  |  直到 14 年前
        1
  •  2
  •   TheUndeadFish    14 年前

    我也没有听说过一个为MFC提供的功能齐全的Sizer库。我不相信有什么比这个相关问题中提到的选择更好的了。

    在我的 意见 我怀疑在这一点上会不会有这样的事情发生。其他成熟的图形用户界面框架在默认情况下已经有了适当的sizer特性,同时也弥补了MFC的许多其他缺陷。我想很多人会说现在为MFC开发这样的东西是不值得的。(我甚至开始研究一种可以应用于MFC的通用大小库,但最终失去了雄心壮志并将其放在一边。)

    此外,我觉得微软自己已经放弃了MFC作为一种遗产,转而支持.net/c/wpf来开发GUI。毕竟,看看这些新技术在过去10年左右的时间里取得了多大的进步,与此同时,除了偶尔添加一个功能包,MFC几乎没有改变。

    如果它是可行的,我建议考虑移到一个更现代的C++框架(例如Qt)或.NET/C·y/WPF(至少对于应用程序的GUI部分)。

        2
  •  3
  •   Jörgen Sigvardsson    14 年前

    几年前我用WTL碰到了这个“问题”。我受够了过于复杂的wm_大小的处理程序,所以我咬了一口子弹,实现了一些布局容器,并将win32控件和我自己的一些控件调整为布局容器。

    我基本上为每个控件创建了子类,并为“minSize、maxSize、preferredSize”实现了自己的协议。有些控制很难实现,但没有什么是不可能的。这并不难做到,所以你可能会想一想,然后去做。在子类化方面,MFC没有ATL/WTL那么灵活,但它足够灵活。

    不幸的是,我无法与您共享代码。:/i甚至在顶部添加了一个简单的XML标记语言,这非常好。