Здравствуйте, уважаемые! Button1Click меняет системный курсор (windows wide), Button2Click возвращает к исходному. Загружаемый курсор отображается статичным. Как его грузить, чтоб анимировался? С++ Builder 6 вообще оное может?
| Код | #define OEMRESOURCE #include <vcl.h> #pragma hdrstop
#include "Unit1.h" //===========================================================================*/ #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //===========================================================================*/ __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { }//=======================================================================*/
AnsiString GetEnvVar(AnsiString envVar);
void __fastcall TForm1::Button1Click(TObject *Sender) { //HANDLE hl = LoadImage(0, (GetEnvVar("windir")+"\\Cursors\\appstart.ani").c_str(), IMAGE_CURSOR, 0, 0, LR_DEFAULTSIZE | LR_LOADFROMFILE); //так тоже пробовал HANDLE hl = LoadCursorFromFile((GetEnvVar("windir")+"\\Cursors\\appstart.ani").c_str()); if (SetSystemCursor(CopyCursor(hl), OCR_NORMAL)==0) MessageBox(NULL, SysErrorMessage(GetLastError()).c_str(), IntToHex((int)GetLastError(),8).c_str(), MB_OK); }//===========================================================================*/
void __fastcall TForm1::Button2Click(TObject *Sender) { SystemParametersInfo //SPI_SETCURSORS Reloads the system cursors. Set the uiParam parameter to zero and the pvParam parameter to NULL ( SPI_SETCURSORS // UINT uiAction, ,0 // UINT uiParam, ,NULL // PVOID pvParam, ,0 // UINT fWinIni ); }//===========================================================================*/
AnsiString GetEnvVar(AnsiString envVar) { int Len = GetEnvironmentVariable(envVar.c_str(), NULL, 0); AnsiString Result; if (Len > 0) { Result.SetLength(Len - 1); GetEnvironmentVariable(envVar.c_str(), Result.c_str(), Len); } return Result; }//===========================================================================*/
|
|