anchor.diff:  
   implementation
   
  -procedure TWin32MenuStyler.ApplyToMenu(AMenu: TMenu);
  -{
  +procedure TWin32MenuStyler.ApplyBackColor(h: HMENU; AReset: boolean);
   var
     mi: TMENUINFO;
  -  }
  -begin
  -  AMenu.OwnerDraw:= true;
  -  AMenu.OnDrawItem:= @HandleMenuDrawItem;
  -
  -  {//it dont work!
  -  //this is to theme 2-3 pixel frame around menu popups
  +begin
     FillChar(mi{%H-}, sizeof(mi), 0);
     mi.cbSize:= sizeof(mi);
     mi.fMask:= MIM_BACKGROUND or MIM_APPLYTOSUBMENUS;
  -  mi.hbrBack:= CreateSolidBrush(MenuStylerTheme.ColorBk);
  -  SetMenuInfo(AMenu.Handle, @mi);
  -  }
  +  if AReset then
  +    mi.hbrBack:= 0
  +  else
  +    mi.hbrBack:= CreateSolidBrush(MenuStylerTheme.ColorBk);
  +  SetMenuInfo(h, @mi);
  +end;
  +
  +procedure TWin32MenuStyler.ApplyToMenu(AMenu: TMenu);
  +begin
  +  AMenu.OwnerDraw:= true;
  +  AMenu.OnDrawItem:= @HandleMenuDrawItem;
  +
  +  //it don't work!
  +  {
  +  if AMenu is TPopupMenu then
  +    with (AMenu as TPopupMenu) do
  +      if not Assigned(OnPopup) then
  +        OnPopup:= @HandleMenuPopup;
  +        }
  +
  +  //it dont work!
  +  //ApplyBackColor(AMenu.Handle, false);
   end;
   
   procedure TWin32MenuStyler.ApplyToForm(AForm: TForm; ARepaintEntireForm: boolean);
   var
     menu: TMainMenu;
  -  mi: TMENUINFO;
   begin
     menu:= AForm.Menu;
     if menu=nil then exit;
   
     ApplyToMenu(menu);
   
  -  //this is to theme 2-3 pixel frame around menu popups
  -  FillChar(mi{%H-}, sizeof(mi), 0);
  -  mi.cbSize:= sizeof(mi);
  -  mi.fMask:= MIM_BACKGROUND or MIM_APPLYTOSUBMENUS;
  -  mi.hbrBack:= CreateSolidBrush(MenuStylerTheme.ColorBk);
  -  SetMenuInfo(GetMenu(AForm.Handle), @mi);
  +  //theme 2-3 pixel frame around menu
  +  ApplyBackColor(GetMenu(AForm.Handle), false);
   
     //repaint the menu bar
     if ARepaintEntireForm then
  
positive.code:       mark:= MenuStylerTheme.CharRadiomark
      else
        mark:= MenuStylerTheme.CharCheckmark;
      Windows.TextOutW(ACanvas.Handle, ARect.Left+dxMin, Y, @mark, 1);
    end;
  
    if mi.ShortCut<>0 then
  
negative.code: 
    TWin32MenuStyler = class
    private
      procedure ApplyBackColor(h: HMENU; AReset: boolean);
      procedure HandleMenuDrawItem(Sender: TObject; ACanvas: TCanvas;
        ARect: TRect; AState: TOwnerDrawState);
      procedure HandleMenuPopup(Sender: TObject);
    public
      procedure ApplyToMenu(AMenu: TMenu);
      procedure ApplyToForm(AForm: TForm; ARepaintEntireForm: boolean);
  