Owner drawn menu items

Hi,

I am having problems with owner drawn menus. All I want to do is change the
font of the menu items. First the indent from the left edge of the menu is
not consistent with an ownerdrawn menu item and a menuitem that comes from
builder's graphical menu editor. Second, all menu items after the owner
drawn one I am inserting appear in bold text.
Is the builder graphical menu editor incompatible with api menu functions?

Some relevant code...

file://---------------------------------------------------------------------
------

void __fastcall TMainForm::FormCreate(TObject *Sender)
{
    Application->ShowHint = true;
    Application->OnShowHint = DoShowHint;

    MENUITEMINFO mii;

    mii.cbSize = sizeof(MENUITEMINFO);
    mii.fMask = MIIM_TYPE;
    mii.fType = MFT_OWNERDRAW;
    mii.dwTypeData = 0;

    InsertMenuItem(File->Handle, 6, true, &mii);
    InsertMenuItem(File->Handle, 6, true, &mii);

Quote
}

file://---------------------------------------------------------------------
------
void __fastcall TMainForm::WMMeasureItem(TMessage &Message)
{
    MEASUREITEMSTRUCT* mis = (LPMEASUREITEMSTRUCT) Message.LParam;

    if (mis->CtlType == ODT_MENU)
    {
        TFont* oldfont = new TFont;

        oldfont->Assign(Canvas->Font);

        Canvas->Font->Name = "MS Sans Serif";
        Canvas->Font->Size = 11;
        mis->itemWidth = Canvas->TextWidth("qwerty");
        mis->itemHeight = Canvas->TextHeight("qwerty");

        Canvas->Font->Assign(oldfont);
        delete oldfont;

        Message.Result = true;
    }
    else
        Message.Result = false;

Quote
}

file://---------------------------------------------------------------------
------
void __fastcall TMainForm::WMDrawItem(TMessage &Message)
{
    DRAWITEMSTRUCT* dis = (LPDRAWITEMSTRUCT) Message.LParam;

    if (dis->CtlType == ODT_MENU)
    {
        TCanvas* canvas = new TCanvas;
        TFont* oldfont = new TFont;
        TBrush* oldbrush = new TBrush;

        canvas->Handle = dis->hDC;
        oldfont->Assign(canvas->Font);
        oldbrush->Assign(canvas->Brush);

        if (dis->itemState & ODS_SELECTED)
        {
            canvas->Font->Color = clHighlightText;
            canvas->Brush->Color = clHighlight;
        }
        else
        {
            canvas->Font->Color = clMenuText;
            canvas->Brush->Color = clMenu;
        }

        canvas->Font->Name = "MS Sans Serif";
        canvas->Font->Size = 11;
        canvas->TextRect(dis->rcItem,
            dis->rcItem.left+LOWORD(GetMenuCheckMarkDimensions()),
            dis->rcItem.top, "Plain Text");

        canvas->Brush->Assign(oldbrush);
        canvas->Font->Assign(oldfont);

        delete oldbrush;
        delete oldfont;
        delete canvas;

        Message.Result = true;
    }
    else
        Message.Result = false;

Quote
}

file://---------------------------------------------------------------------
------