I\'m creating a custom control in wxWidgets that displays a menu as part of it, and currently working on the Windows side of things. wxWidgets doesn\'t have a way of setting th
It has nothing to do with WM_MEASUREITEM
Just use internal win32 menu messages
(Win32 FAQ : news://comp.os.ms-windows.programmer.win32)
With the handle of the menu, you can cycle through the menu items and call SetMenuItemInfo, indicating that you want to owner-draw the menu items. When you do this, the window that the menu is attached to will receive the WM_MEASUREITEM
message, which you would then respond to by setting the dimensions required for the menu. It is here you can set your width.
Of course, this means you have to subclass the windows message handler for the window that contains the menu.
First of all, try to obtain the HWND to the menu: (1) WM_DRAWITEM (2)get the HDC (3)WindowFromDC(), then you can arbitrarily adjust aspects of the menu. NOTE: don't send WM_QUIT WM_CLOSE to the menu, or you'll effectively shut down your computer with no clue.