584___________________________Часть V. Инструментарий программиста

В листинге 31.1 приведена элементарная программа задания пользовательского курсора, использующая класс TApplication из библиотеки ObjectWindows.

h08841.jpg

1. // OWLCURS.CPP — Использование пользовательского курсора.

2. // Заголовочные файлы WL

3. ^include <owl\applicat.h>

4. #include <owl\framewin.h>

5. // Заголовки не из Borland

6. ftinclude "owlcurs.h"

7. class TApp : public TApplication {

8. public:

9. TAppO : TApplication() {};

10. void InitMainWindow(){

11. MainWindow = new TFrameWindow( 0, "OWL Cursor");

12. MainWindow->SetCursor( this, CURSOR_1);1}

13. };

14. int OwlMain(int /*argc*/, char* /*argv*/[]){

15. return TApp().Run() ;

16. }

В первых строках примера подключаются заголовочные файлы framewin.h, applicat.h и owlcurs.h. Первые два содержат классы TFrameWindow и TApplication соответственно, а последний содержит идентификаторы ресурсов из Resource Workshop. Затем создается производный от TApplication класс TApp. В нем переопределяется виртуальная функция InitMainWindow, определенная в TApplication, в куче размещается новый объект TFrameWindow и, наконец, функцией SetCursor из TFrameWindow устанавливается пользовательский курсор. Функция OWL SetCursor объявлена следующим образом:

SetCursor(TModule*, TResiD);

и принимает в качестве аргументов указатель на объект TModule и объект TResiD. Класс TFrameWindow наследуется от TModule, поэтому в нашем примере использован указатель this. Объект TResiD может быть сконструирован из идентификатора ресурса, что позволяет применить определенный в owlcurs.h макрос CURSOR_I. Программа завершается определением функции OwlMain и вызовом функции Run (), унаследованной классом TApp от предков. Вид нового курсора показан на рис. 31.5.

Итак, чтобы добавить новый курсор в приложение пользователя, выполните следующие шаги:

1. Откройте проект.

2. Откройте окно IDE и двойным щелчком на файле ресурсов (.гс) загрузите встроенное средство Resourse Workshop.