Setting the width of a menu in the Windows API

后端 未结 3 1073
名媛妹妹
名媛妹妹 2021-01-28 07:22

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

相关标签:
3条回答
  • 2021-01-28 07:26

    It has nothing to do with WM_MEASUREITEM

    Just use internal win32 menu messages

    (Win32 FAQ : news://comp.os.ms-windows.programmer.win32)

    0 讨论(0)
  • 2021-01-28 07:27

    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.

    0 讨论(0)
  • 2021-01-28 07:42

    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.

    0 讨论(0)
提交回复
热议问题