C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Анимированный курсор, Анимированные курсоры в приложениях
Guest
Отправлено: 17.06.2003, 12:30


Не зарегистрирован







Скажите, пожалуйста, можно ли использовать анимированные курсоры («живые указатели») в приложениях? И если можно, то как их использовать с помощью BCB 5.0 Enterprice?
Admin
Отправлено: 17.06.2003, 14:12


Владимир

Группа: Администратор
Сообщений: 1190



Ну есть же и в разделе FAQ и в архиве форума

CODE


Во первых необходимо получит handle курсора, а затем определить его в массиве курсоров компонента TScreen. Индексы предопределенных курсоров системы отрицательны, пользователь может определить курсор, индекс которого положителен.

---------------------

void __fastcall TForm1::Button2Click(TObject *Sender)
{
const crMyCursor = 5;

Screen->Cursors[crMyCursor] = LoadCursorFromFile("C:\\WIN\\Cursors\\banana.ani");
Form1->Cursor = crMyCursor;
}


или


void __fastcall TForm1::Button1Click(TObject *Sender)
{
HANDLE h;
h = LoadImage(0, "C:\\WIN\\Cursors\\coin.ani",
IMAGE_CURSOR,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE);
if(h == 0)
ShowMessage("Cursor not loaded");
else
{
Screen->Cursors[1] = h;
Form1->Cursor = 1;
}
}
//---------------------------------------------------------

или можем добавить наш курсор (анимированный) в ресурс
и когда нужно, достать из ресурса

Project -> Resources-> New выбираем курсор, который запихнем
в ресурс , выбираем вид ресурса — курсор, указываем файл с курсором,
даем имя этому ресурсу — например Barb.
Компилим проект.
Когда надо — извлекаем из ресурса и показываем
(Плюс этого варианта — курсор лежит в .exe, не надо всюду
таскать файл с курсором)

//--------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{

const TCursor xBarb = 1;
Screen->Cursors[xBarb] = LoadCursor(HInstance, "Barb");
Form1->Cursor = xBarb;
}
//---------------------------------------------------------


Также смотрите функцию в Help к C++Builder и Example
по ее использованию.

LoadAniCursor(Instance: THandle; ResID: PChar): HCursor;

The LoadAniCursor function loads the specified animated cursor resource
from the executable (.EXE or .DLL) file associated with the specified
application instance.

CODE


//-------------------------------------------------
#include <vclutils.hpp>
void __fastcall TForm1::Button4Click(TObject *Sender)
{
 HICON Cur;

 Cur = LoadAniCursor((int)HInstance, "Barb");
 if(Cur == 0) ShowMessage("Error loading cursor !");
 else {
            Screen->Cursors[200] = Cur;
            Form1->Cursor  = 200;
         }
}
//--------------------------------------------------




Отредактировано Admin — 17 Jun 2003, 14:35

Вернуться в Вопросы программирования в C++Builder