private void WmMeasureMenuItem(ref Message m) { System.Windows.Forms.NativeMethods.MEASUREITEMSTRUCT lParam = (System.Windows.Forms.NativeMethods.MEASUREITEMSTRUCT)m.GetLParam(typeof(System.Windows.Forms.NativeMethods.MEASUREITEMSTRUCT)); MenuItem menuItemFromItemData = MenuItem.GetMenuItemFromItemData(lParam.itemData); if (menuItemFromItemData != null) { menuItemFromItemData.WmMeasureItem(ref m); } }
private void WmMeasureMenuItem(ref Message m) { // Obtain the menu item object NativeMethods.MEASUREITEMSTRUCT mis = (NativeMethods.MEASUREITEMSTRUCT)m.GetLParam(typeof(NativeMethods.MEASUREITEMSTRUCT)); Debug.Assert(m.LParam != IntPtr.Zero, "m.lparam is null"); // A pointer to the correct MenuItem is stored in the measure item // information sent with the message. // (See MenuItem.CreateMenuItemInfo) MenuItem menuItem = MenuItem.GetMenuItemFromItemData(mis.itemData); Debug.Assert(menuItem != null, "UniqueID is not associated with a menu item"); // Delegate this message to the menu item if (menuItem != null) { menuItem.WmMeasureItem(ref m); } }