Make bitmap menu items look like in windows when selected,
i.e. inverted and hilited (in Win98 look).

diff --git a/controls/menu.c b/controls/menu.c
index c6efef0..649a4bd 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -1114,11 +1114,21 @@
 
     if (!(lpitem->fType & MF_OWNERDRAW))
     {
-        if ((lpitem->fState & MF_HILITE) && !(IS_BITMAP_ITEM(lpitem->fType)))
-            if ((menuBar) &&  (TWEAK_WineLook==WIN98_LOOK))
-	        DrawEdge(hdc, &rect, BDR_SUNKENOUTER, BF_RECT);
-	    else
-	        FillRect( hdc, &rect, GetSysColorBrush(COLOR_HIGHLIGHT) );
+	if (lpitem->fState & MF_HILITE)
+	{
+	    if(TWEAK_WineLook == WIN98_LOOK)
+	    {
+		if(menuBar)
+		    DrawEdge(hdc, &rect, BDR_SUNKENOUTER, BF_RECT);
+		else
+		    FillRect(hdc, &rect, GetSysColorBrush(COLOR_HIGHLIGHT));
+	    }
+	    else /* Not Win98 Look */
+	    {
+		if(!IS_BITMAP_ITEM(lpitem->fType))
+		    FillRect(hdc, &rect, GetSysColorBrush(COLOR_HIGHLIGHT));
+	    }
+	}
         else
 	    FillRect( hdc, &rect, GetSysColorBrush(COLOR_MENU) );
     }
@@ -1168,15 +1178,29 @@
 
       /* Setup colors */
 
-    if ((lpitem->fState & MF_HILITE) && !(IS_BITMAP_ITEM(lpitem->fType)) )
+    if (lpitem->fState & MF_HILITE)
     {
-	if (lpitem->fState & MF_GRAYED)
-	    SetTextColor( hdc, GetSysColor( COLOR_GRAYTEXT ) );
-	else if ((menuBar) &&  (TWEAK_WineLook==WIN98_LOOK))
-	    SetTextColor( hdc, GetSysColor( COLOR_MENUTEXT ) );
-	else
-	    SetTextColor( hdc, GetSysColor( COLOR_HIGHLIGHTTEXT ) );
-	SetBkColor( hdc, GetSysColor( COLOR_HIGHLIGHT ) );
+	if(TWEAK_WineLook == WIN98_LOOK)
+	{
+	    if(menuBar)
+		SetTextColor(hdc, GetSysColor(COLOR_MENUTEXT));
+	    else
+	    {
+		if(lpitem->fState & MF_GRAYED)
+		    SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT));
+		else
+		    SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
+	    }
+	    SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
+	}
+	else /* Not Win98 Look */
+	{
+	    SetTextColor(hdc, GetSysColor(COLOR_HIGHLIGHTTEXT));
+	    if(!IS_BITMAP_ITEM(lpitem->fType))
+		SetBkColor(hdc, GetSysColor(COLOR_HIGHLIGHT));
+	    else
+		SetBkColor(hdc, GetSysColor(COLOR_MENU));
+	}
     }
     else
     {
@@ -1285,7 +1309,8 @@
 		rect.top+(rect.bottom-rect.top-bm.bmHeight)/2 : rect.top;
 
 	    BitBlt( hdc, rect.left, top, rect.right - rect.left,
-		  rect.bottom - rect.top, hdcMem, 0, 0, SRCCOPY );
+		  rect.bottom - rect.top, hdcMem, 0, 0,
+		  (lpitem->fState & MF_HILITE) ? NOTSRCCOPY : SRCCOPY );
 	}
 	DeleteDC( hdcMem );