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