![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с отрисовкой MainMenu1DrawItem [Delphi, Windows]
Аид © (2004-03-12 08:16:00)Вообщем у MainMenu есть событие DrawItem, в котором можно написать код своей отрисовки (включая ownerDraw в Items меню). всё рисует, но как сделать прорисовку на выделение?? там в событие передаётся TDrawState, я попробовал все - но при наведении мышки не выделяется... может там нужна комбинация? Ниже код:
function TForm1.MainMenu1MeasureItem(Sender: PObj; Idx: Integer): Integer;
begin
Result := (29 + 6) or ((29 * 2) shl 16);
end;
function TForm1.MainMenu1DrawItem(Sender: PObj; DC: HDC; const Rect: TRect;
ItemIdx: Integer; DrawAction: TDrawAction;
ItemState: TDrawState): Boolean;
begin
if ItemState=[odsSelected] then LineTo(DC,200,200);
TextOut( DC, 29 + 6, 6, 'Hello!', 6 );
end;
эту линию он не рисует :(
Аид (2004-03-12 17:59:00) [1]всё, нашёл... просто надо было вот так написать:
function TForm1.MainMenu1DrawItem(Sender: PObj; DC: HDC; const Rect: TRect;
ItemIdx: Integer; DrawAction: TDrawAction;
ItemState: TDrawState): Boolean;
begin
if odsSelected in ItemState then LineTo(DC,200,200);
TextOut( DC, 29 + 6, 6, 'Hello!', 6 );
end;
<Falcon> (2004-03-12 13:10:00) [2]А где то этого карандаш находился? Возможно нужно еще MoveTo перед прорисовкой линии сделать? Не уверен, но проверь...