Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TCanvas и CS_OWNDC [D7, WinXP]


akvilon ©   (2005-01-28 17:50:00) 

Оравдано ли будет использование класса TCanvas в окне со стилем CS_OWNDC? есть ли какие альтернативы классу TCanvas, мне нужен только удобный интерфейс к апи функциям и больше ничего


akvilon   (2005-01-28 19:14:00) [1]

У меня всё тут в милиметрах :) и постоянно нужно вызывать LPtoDP и наоборот, да еще каретку показываю, а с ней OWNDC необходим

решил вот все рисование через непосредственный вызов АПИ сделать, минуя Canvas

хочется избавиться от сброса смещения области вывода окна (WindowOrgEx) и т.п. да много чего ...


MBo   (2005-01-28 19:05:00) [2]

А для чего тебе CS_OWNDC, вещь довольно редкая?
Хочется избавиться от сброса настроек контекста при WM_PAINT?


akvilon   (2005-01-28 18:52:00) [3]

спасибо, буду думать ...
просто мне кажется что сам класс TCanvas не подходит для рисования в окне со стилем CS_OWNDC, во-первых является избыточным, так как все настройки HDC сохраняются в самом HDC и вообще тут нужен немного другой подход, на уровне WinAPI для правильного использования такого HDC (OWNDC)
Вот в чем вопрос ...


MBo   (2005-01-28 18:33:00) [4]

procedure TForm1.Button2Click(Sender: TObject);
var
 lf:TLogFont;
begin
Canvas.Font.Name:='Arial';//шрифт должен быть True Type
GetObject(Canvas.Font.Handle, SizeOf(TLogFont),@lf);
lf.lfOrientation:=450;
lf.lfEscapement:=450;
Canvas.Font.Handle:=CreateFontIndirect(lf);
Canvas.TextOut(100,100,'abcd');
end;


akvilon   (2005-01-28 18:32:00) [5]

а как же канвас? если сам канвас не подходит то и фонт тут зачем ...


MBo   (2005-01-28 18:26:00) [6]

>похоже TFont для этого не пригоден...
Пригоден. Нужно создать шрифт (CreateFont(Indirect)) с двумя соотв. полями структуры LogFont, отвечающими за поворот, и присвоить полученный дескриптор свойству Handle


akvilon   (2005-01-28 17:53:00) [7]

добавлю еще, необходимо писать выводить текст под разными углами похоже TFont для этого не пригоден...


Наверх

Титульная страница Поиск, карта сайта Написать письмо