Собственное меню win32 на самом деле не поддерживает значки, поэтому вы не можете назвать его областью значков.В базовом меню размер этой области составляет SM_CXMENUCHECK (вероятно, плюс SM_CXEDGE для заполнения). Для Vista + вы можете найти лучшие показатели с помощью констант MENU_POPUP * и GetThemeInt.AFAIK точные макеты и константы границ, необходимые для репликации классических меню Win95 +, не документированы.
Поскольку вы говорите о значках, я предполагаю, что вы хотите добавить значки в ваше меню, поэтому ваша ширина должна быть максимальной (yourIconWidth, GetSystemMetrics(SM_CXMENUCHECK)) + отступы. Эта старая статья MSJ , вероятно, является лучшим руководством по рисованию для владельцев меню, и у codeproject есть собственный раздел статьи меню с несколькими различными реализациями рисования для владельцев.(MS Office и Visual Studio также используют пользовательские вещи)
В заключение, поскольку вы сказали, что XP +, вы должны иметь возможность использовать HBMMENU_CALLBACK и беспокоиться только о значке, а не об остальном рисунке меню..