Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.23;
Скачать: CL | DM;

Вниз

ооп вопрос   Найти похожие ветки 

 
серж   (2008-02-20 14:39) [0]

Нужен наследник TComboBox, ну точнее наверное TCustomComboBox, в котором я хочу изменить отрисовку в
procedure CNDrawItem(var Message: TWMDrawItem); message CN_DRAWITEM;

Как это следует сделать? Посмотрите реализацию TCustomComboBox, подскажите пожалуйста.


 
Palladin ©   (2008-02-20 14:41) [1]

а зачем? наследоваться необязательно... TComboBox предоставляет для этого все возможности...


 
серж   (2008-02-20 14:52) [2]

Может быть и зря я пытаюсь это сделать. Ниже есть тема, где есть описание самой проблемы: http://delphimaster.net/view/2-1203486854/

У меня не получилось исправить ситуацию через OnDrawItem в TComboBox.

В итоге, я хочу исправить обработчик только одной строкой:
procedure TCustomComboBox.CNDrawItem(var Message: TWMDrawItem);
var
 State: TOwnerDrawState;
begin
 with Message.DrawItemStruct^ do
 begin
   State := TOwnerDrawState(LongRec(itemState).Lo);
   if itemState and ODS_COMBOBOXEDIT <> 0 then
     Include(State, odComboBoxEdit);
   if itemState and ODS_DEFAULT <> 0 then
     Include(State, odDefault);
   FCanvas.Handle := hDC;
   FCanvas.Font := Font;
   FCanvas.Brush := Brush;
   if (Integer(itemID) >= 0) and (odSelected in State) then
   begin
     FCanvas.Brush.Color := clHighlight;
     FCanvas.Font.Color := clHighlightText
   end;
   if Integer(itemID) >= 0 then
     DrawItem(itemID, rcItem, State) else
     FCanvas.FillRect(rcItem);                  
    if Integer(itemID) <> -1 then          
      if (odFocused in State) then DrawFocusRect(hDC, rcItem);
   FCanvas.Handle := 0;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2008.03.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.014 c
15-1202182276
Rian
2008-02-05 06:31
2008.03.23
Как через Format выводить Float фиксированного размера?


2-1203522656
Answer_i3
2008-02-20 18:50
2008.03.23
Записать в exe файл слово


2-1203691244
San1
2008-02-22 17:40
2008.03.23
наследование свойства OnMouseMove


11-1186122972
Alexey_k
2007-08-03 10:36
2008.03.23
Access Violation на компоненте MHIPEdit


2-1204026234
FishNode
2008-02-26 14:43
2008.03.23
GetTextExtentPoint32