Программирование на С++ с помощью компилятора Borland C++ 5.02 и библиотеки OWL 5.00

Программирование. Borland C++ 5.02. Вывод растровых изображений.


     

     Для вывода растровых изображений необходимо:

1. Создать указатель на объект в памяти.

2. Загрузить ресурс (растровое изображение).

3. Создать совместимый контекст.

4. Загрузить ресурс.

     Для этого примера мы также воспользуемся кодом, приведенном в примере, использующем функцию Paint():

      файл: Start.cpp

#include <owl\applicat.h>

#include <owl\framewin.h>

// Класс приложения

class StartApp : public TApplication

{



     public:

          StartApp() : TApplication() {}

          void InitMainWindow();

};

// Класс главного окна

class StartWindow : public TFrameWindow

{

     public:

          StartWindow(TWindow *parent, char far *title);

          void Paint(TDC&, bool, TRect&);

};

// Конструктор главного окна

StartWindow::StartWindow(TWindow *parent, char far *title)

                       :TFrameWindow(parent, title)

{

     // код конструктора главного окна

     // расположение и размеры главного окна

     Attr.X = 100;

     Attr.Y = 150;

     Attr.W = 400;

     Attr.H = 300;

}

void StartWindow::Paint(TDC& dc, bool, TRect&)

{

     dc.TextOut(20, 20, "SerVit Mas")

}

// Функция InitMainWindow класса TStartApp

void StartApp::InitMainWindow()

{

     StartWindow *startWnd = new StartWindow(0, "Первое окно");


     SetMainWindow(startWnd);

}

// Функция OwlMain()

int OwlMain(int, char*[])

{

     return StartApp().Run();

}

     Изменения в тексте программы:

     1. Вставляем указатель на объект класса TBitmap в объявление класса нашего окна.

     2. Вставляем деструктор в объявление класса нашего окна.

     3. Загружаем ресурс в конструкторе класса нашего окна.

     4. Освобождаем ресурс в деструкторе класса нашего окна.

     5. Создаем рисунок.

     6. Включаем рисунок в файл ресурсов.

     7. Создаем совместимый (с памятью) контекст устройства.

     Вот, что должно у Вас получиться:

      файл: Start.cpp

#include <owl\applicat.h>

#include <owl\framewin.h>

// Класс приложения

class StartApp : public TApplication

{

     public:

          StartApp() : TApplication() {}

          void InitMainWindow();

};

// Класс главного окна

class StartWindow : public TFrameWindow

{

     private:

          TBitmap* bitmap;

     public:

          StartWindow(TWindow *parent, char far *title);

          ~StartWindow();

          void Paint(TDC&, bool, TRect&);

};

// Конструктор главного окна

StartWindow::StartWindow(TWindow *parent, char far *title)

                       :TFrameWindow(parent, title)



{

     // код конструктора главного окна

     // расположение и размеры главного окна

     Attr.X = 100;

     Attr.Y = 150;

     Attr.W = 400;

     Attr.H = 300;

     bitmap = new TBitmap(*GetModule(),"Picture");

}

// Деструктор главного окна

StartWindow::~StartWindow()

{

     delete bitmap;

}

void StartWindow::Paint(TDC& dc, bool, TRect&)

{

     TMemoryDC memdc(dc);

     memdc.SelectObject(*bitmap);

     dc.BitBlt(10,80,bitmap->Width(),bitmap->Height(),memdc,0,0,SRCCOPY);

}

// Функция InitMainWindow класса TStartApp

void StartApp::InitMainWindow()

{

     StartWindow *startWnd = new StartWindow(0, "Курсор");

     SetMainWindow(startWnd);

}

// Функция OwlMain()

int OwlMain(int, char*[])

{

     return StartApp().Run();

}

     После компиляции программы у Вас получится:





Содержание раздела