如何在主窗口菜单中设置关闭按钮?

时间:2011-05-28 17:28:18

标签: c windows winapi user-interface mfc

我想在主窗口的菜单中添加一个“关闭”按钮。可以在此处的图片中找到一个示例:http://ifyoucodeittheywill.com/img/crimson-editor.png

(因此,窗口标题区域中有正常的关闭按钮,但是,窗口的菜单栏中还有一个关闭按钮 - 位于最右侧。)

我使用的是基本的win32 API,虽然使用MFC的例子也没问题。

有谁知道怎么做?

谢谢, 安德鲁

3 个答案:

答案 0 :(得分:2)

这些按钮通常带有MDI窗口。但是我很确定所描述的应用程序使用它自己的,或者更可能使用一些先进的第三方工具包。因为,老实说,Windows API和MFC(它只是Windows API的一个分类包装器)给你的GUI编程带来了无法限制的。

如果你想设计整洁的用户界面,可以从MFC中清楚地看到,更好地看看像Qt,wxWidgets之类的东西。

答案 1 :(得分:1)

一种非常简单的方法是使用AppendMenu使用常规菜单项,但使用以下标志:

  • 带有关闭按钮位图的MF_BITMAP,或MF_OWNERDRAW或自己绘制
  • MF_HELP(又名WM_RIGHTJUSTIFY),一个记录不太好的标志,可以证明该项目在右边。

这是one reference to MF_HELP that I found on msdn - 它实际上是关于使用Win32 API对菜单项进行右对齐,但是使用Visual Basic。

MF_HELP(在winuser.h中定义)是Win16天的延续,当时,惯例是对“帮助”菜单项进行右对齐,因此它会分开。它被'重命名' - 一个额外的#define添加了相同的值 - 到Win95周围的WM_RIGHTJUSTIFY。

请注意,位图菜单项不可访问(例如,依赖屏幕阅读器读取屏幕上的位置的用户);如果采用这种方法,那么至少在菜单的其他地方添加常规的“关闭”菜单项(例如,在文件下),这样用户就不必依赖这个项目,也可以通过常规手段关闭它。另外一定要实现Ctrl-F4快捷键,这是大多数支持多个文档或制表符的应用程序用来关闭当前项目的。

答案 2 :(得分:0)

一定不要尝试自己创建这种行为。如果您使用MFC的MDI体系结构,这是“免费”获得的功能。调用它时,“菜单旁边”的关闭按钮将关闭活动的MDI子窗口。如果您没有使用MDI架构,那么尝试在那里添加关闭按钮是没有意义的。你能解释一下你是否在使用MDI架构吗?