Visual Basic 6. Руководство разработчика


Ускорения операций вывода графических изображений - часть 4


Во время копирования пикселей содержимое экрана не изменяется. Если создание изображения выполняется в памяти, то Windows неизвестно о том, что предполагается делать с этим изображением в дальнейшем, поэтому никаких изменений на экране не происходит. В конце концов, когда пиксели будут скопированы, следует переместить растровое изображение из памяти (контекст hDestDC) в окно элемента-получателя (окно элемента управления PictureBox2). Это выполняется с помощью функции BitBlt(). В заключение программа освобождает

все ресурсы, созданные во время выполнения операции, с помощью функций DeleteDC() и Delete Object().

Запустите проект CopyPix и щелкните на кнопке Сору Fast, чтобы увидеть, насколько быстрее он работает по сравнению с двумя другими методами. Недостаток этого метода состоит в том, что невозможно наблюдать за скоростью выполнения операции копирования пикселя. Второе изображение появится на экране только тогда, когда все пиксели буду скопированы. Если обрабатываются большие изображения, то функцию BitBlt() придется вызывать чаще (например, при копи­ровании каждого столбца пикселей). Это приводит к появлению некоторой задержки, но метод, описанный в этом параграфе, все равно быстрее двух других. Можно добавить в программу индикатор, позволяющий пользователю получить представление о скорости выполнения программы и времени, оставшемся до ее завершения.

Этим примером заканчивается рассмотрение API-функций. В следующей главе рассмотрены организация взаимодействия программ Visual Basic с внешними приложениями (такими, как Excel и Word) и управление их объектами с помощью VBA. Офисные приложения предоставляют много возможностей, которые можно использовать в VB-приложениях, поэтому не имеет смысла заново их разрабатывать в Visual Basic.

Глава 14 Автоматизация OLE и VBA

•           Расширение возможностей Visual Basic с помощью OLE

•           OLE-терминология

•           Связывание и встраивание

•           Применение элемента управления OLE Container

•           Автоматизация OLE и VBA




Начало  Назад  Вперед