1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
   |  
__fatscall MyMainMenu::MyMainMenu(TComponent *Owner):TMainMenu(Owner){
  TMenu::OwnerDraw = TRUE;
}
 
 
void __fastcall MyMainMenu::DrawMainMenuItem(TObject* Sender, TCanvas* ACanvas,
                                      const TRect &ARect, TOwnerDrawState State){
 
  TMenuItem *temp = dynamic_cast<TMenuItem *>(Sender);
 
  TRect TempRect;
  TempRect = ARect;
 
  if (State.Contains(odSelected) && !State.Contains(odDisabled)){
    DrawEdge(ACanvas->Handle, (tagRECT *)&ARect, BDR_SUNKENOUTER, BF_RECT);
    TempRect.Top += 2;
    TempRect.Left += 2;
    TempRect.Right -= 2;
    TempRect.Bottom -= 2;
    ACanvas->Font->Color  = clMenuText;
  }
  else if (State.Contains(odDisabled)){
    ACanvas->Font->Color = clGrayText;
  }
  else if (State.Contains(odHotLight)){
    DrawEdge(ACanvas->Handle, (tagRECT *)&ARect, BDR_RAISEDINNER, BF_RECT);
    TempRect.Top += 2;
    TempRect.Left += 2;
    TempRect.Right -= 2;
    TempRect.Bottom -= 2;
    ACanvas->Font->Color = clMenuText;
  }
                                          //clBtnFace et non clMenuBar car sinon
  ACanvas->Brush->Color  = clBtnFace;     //mauvaise couleur en thème xp
  ACanvas->FillRect(TempRect);
  DrawText(ACanvas->Handle, temp->Caption.c_str(), -1, (tagRECT *)&TempRect,DT_SINGLELINE | DT_VCENTER | DT_CENTER);
 
} | 
Partager