Кент Рейсдорф. BORLAND C++BUILDER. Раздел 3

Кент Рейсдорф. BORLAND C++BUILDER. Страница 386

Хорошая новость состоит в том, что VCL охраняет вас от необходимости знать все подробности контекстов устройств. VCL инкапсулирует DC Windows в классе TCanvas. Каждая форма в С+-l-Builder имеет свой собственный холст, который представлен свойством Canvas. В любой момент, когда вам нужно что-либо нарисовать непосредственно в форме, вы делаете это, обращаясь к свойству Canvas. Например, следующий код проведет в форме диагональную линию из левого верхнего в правый нижний угол:

Canvas->MoveTo(0, 0) ;

Canvas->LineTo(ClientRect.Right, ClientRect.Bottom);

Тип рисуемой линии будет определяться текущим пером, которое задано свойством Реп холста.

Приятная особенность свойства Canvas — это то, что вы не должны беспокоиться обо всех мелких подробностях контекстов устройств Windows, которые могут сами начать управлять вами, сводя с ума. VCL позаботится о получении DC, выборе соответствующих объектов в DC и освобождении DC, когда он больше не нужен. Все, что от вас требуется — это нарисовать что-либо на холсте и предоставить VCL остальную работу.

Какое отношение все это имеет к печати? Самое прямое: Windows по­зволяет вам получить контекст устройства принтера, на котором вы можете рисовать текст, графику, линии и т.д. Другими словами, вы рисуете на DC принтера точно так же, как на DC экрана. Эта концепция резко отличается от того подхода к печати, который был реализован в старой доброй DOS. Теперь Windows приходит нам на помощь, позволяя использовать DC прин­тера. VCL помогает нам еще больше, инкапсулируя контексты устройств в свойстве Canvas. Таким образом, печать становится проще, чем когда-либо прежде.

Класс TPrinter и функция Printer()

VCL помогает выполнять операции печати, предоставляя в ваше распо­ряжение класс TPrinter. Этот класс инкапсулирует всю печать Windows. TPrinter имеет свойство Canvas, которое может использоваться для вывода линий, текста, графики и других рисуемых объектов на принтер. Я не хочу, чтобы это выглядело слишком просто, но все, что вы должны сделать для печати из своих программ С+-t-Builder — включить заголовочный файл Print­ers. hpp, а затем написать код наподобие следующего:

Web-дизайн (с) 2010 All rights reserved