![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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 для этого не пригоден...