Действительно простой способ сделать это - использовать обычный пункт меню, используя AppendMenu, но использовать следующие флаги:
- MF_BITMAP с растровым изображением кнопки закрытия или MF_OWNERDRAW или для рисования самостоятельно
- MF_HELP (он же WM_RIGHTJUSTIFY), не очень хорошо документированный флаг, который будет оправдывать пункт справа.
Вот одна ссылка на MF_HELP, которую я нашел в msdn - на самом деле речь идет об использовании Win32 API для выравнивания по правому краю пункта меню, но с использованием Visual Basic.
MF_HELP (определено в winuser.h) является чем-то вроде пережитка Win16 дней, тогда конвенция заключалась в том, чтобы выровнять пункт меню Справка по правому краю, чтобы он оставался в стороне. Он был переименован - добавлен дополнительный #define с тем же значением - в WM_RIGHTJUSTIFY вокруг Win95.
Обратите внимание, что пункты растрового меню недоступны (например, пользователям, которые полагаются на программу чтения с экрана, чтобы считывать, где они находятся на экране); если использовать такой подход, то, по крайней мере, добавьте обычный пункт меню «Закрыть» в другом месте меню (например, в разделе «Файл»), чтобы пользователю не пришлось полагаться на этот элемент, а также можно было закрыть его обычными средствами. Также обязательно используйте ярлык Ctrl-F4, который используется большинством приложений, поддерживающих несколько документов или вкладок, для закрытия текущего элемента.