代码之家  ›  专栏  ›  技术社区  ›  Tim Sylvester

“粘滞”MFC弹出菜单

  •  2
  • Tim Sylvester  · 技术社区  · 16 年前

    TBSTYLE_EX_DRAWDDARROWS )当点击时,会在按钮下方显示一个弹出式上下文菜单。这是通过构建一个自定义弹出菜单并调用 TrackPopupMenu .

    1. 用户点击下拉按钮
    2. 出现下拉菜单(模式,无限期等待用户操作)

    我能想到的最好办法就是打电话重新显示菜单 轨迹弹出菜单

    2 回复  |  直到 16 年前
        1
  •  3
  •   Mark Ransom    16 年前

    与其用菜单,不如用对话框来显示选项。对话框可以很容易地完成所有需要的事情。

    当你点击菜单时,如果它没有关闭,那么它看起来就是错误的。一个自行关闭的对话似乎也是错误的,但它可能是两种罪恶中最小的一种。

    编辑: 如果说我从微软学到了什么,那就是不要试图对抗默认行为。如果你这样做,你是在自找麻烦。

    如果你正在动态构建菜单,我可以看到自动调整大小是多么方便,但在对话框中也不难做到——让对话框变得非常大,在它变得可见之前,枚举子项并合并所有矩形,然后调整大小。使用OffsetRect检查边界以确保它们在屏幕上只是几个if语句。复选框是微不足道的;图标不那么好,但仍然不错。

        2
  •  1
  •   djeidot    16 年前

    推荐文章