584___________________________Часть V. Инструментарий программиста
В листинге 31.1 приведена элементарная программа задания пользовательского курсора, использующая класс TApplication из библиотеки ObjectWindows.
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.