/////////////////////////////////////////////////////////////////////////////// // Name: wx/msw/private/menu.h // Purpose: Structs used to custom draw and measure menu bar in wxMSW // Author: Vadim Zeitlin // Created: 2025-01-24 // Copyright: (c) 2025 wxWidgets development team // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_MSW_PRIVATE_MENU_H_ #define _WX_MSW_PRIVATE_MENU_H_ namespace wxMSWMenuImpl { // Definitions for undocumented messages and structs used in this code. constexpr int WM_MENUBAR_DRAWMENU = 0x91; constexpr int WM_MENUBAR_DRAWMENUITEM = 0x92; constexpr int WM_MENUBAR_MEASUREMENUITEM = 0x94; // This is passed via LPARAM of WM_MENUBAR_DRAWMENU. struct MenuBarDrawMenu { HMENU hmenu; HDC hdc; DWORD dwReserved; }; struct MenuBarMenuItem { int iPosition; // There are more fields in this (undocumented) struct but we don't // currently need them, so don't bother with declaring them. }; struct MenuBarDrawMenuItem { DRAWITEMSTRUCT dis; MenuBarDrawMenu mbdm; MenuBarMenuItem mbmi; }; struct MenuBarMeasureMenuItem { MEASUREITEMSTRUCT mis; MenuBarDrawMenu mbdm; MenuBarMenuItem mbmi; }; } // namespace wxMSWMenuImpl #endif // _WX_MSW_PRIVATE_MENU_H_