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

C 如何在主窗口菜单中放置关闭按钮?,c,windows,winapi,user-interface,mfc,C,Windows,Winapi,User Interface,Mfc,我想在主窗口的菜单中添加一个“关闭”按钮。可以在以下图片中找到一个示例: (因此,在窗口标题区域中有一个普通的关闭按钮,但在窗口的菜单栏中也有一个关闭按钮——在最右侧) 我使用的是基本的win32 API,不过使用MFC的示例也可以 有人知道怎么做吗 谢谢, Andrew这些按钮通常与MDI窗口一起提供。但是,我非常确定所描述的应用程序使用自己的,或者更可能使用一些高级的第三方工具包。因为,老实说,windowsapi和MFC(它只是windowsapi的一个分类包装器)为GUI编程提供的功能是

我想在主窗口的菜单中添加一个“关闭”按钮。可以在以下图片中找到一个示例:

(因此,在窗口标题区域中有一个普通的关闭按钮,但在窗口的菜单栏中也有一个关闭按钮——在最右侧)

我使用的是基本的win32 API,不过使用MFC的示例也可以

有人知道怎么做吗

谢谢,
Andrew

这些按钮通常与MDI窗口一起提供。但是,我非常确定所描述的应用程序使用自己的,或者更可能使用一些高级的第三方工具包。因为,老实说,windowsapi和MFC(它只是windowsapi的一个分类包装器)为GUI编程提供的功能是不受限制的


如果您想设计简洁的UI,请避开MFC,最好看看Qt、wxWidgets等产品。

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

  • 带有关闭按钮位图的MF_位图,或MF_OWNERDRAW或自己绘制
  • MF_HELP(又名WM_RIGHTJUSTIFY),一个没有很好文档记录的标志,它将使项目向右对齐
这里是-它实际上是关于使用Win32 API右对齐菜单项,但使用Visual Basic

MF_HELP(在winuser.h中定义)是Win16天以来的一种保留,当时的惯例是对HELP菜单项进行右对齐,因此它将与众不同。它被“重命名”——一个附加的“定义”以相同的值添加到Win95周围的WM#U RIGHTJUSTIFY中


请注意,位图菜单项不可访问(例如,对于依赖屏幕阅读器读取屏幕位置的用户);如果采用这种方法,则至少在菜单中的其他位置(例如文件下)添加一个常规的“关闭”菜单项,这样用户就不必依赖此项,也可以通过常规方式关闭它。另外,请确保实现Ctrl-F4快捷方式,这是大多数支持多个文档或选项卡的应用程序用来关闭当前项目的快捷方式。

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