C++ Builder自定义光标操作

TCursor scenecur(TCursor(18));
TCursor busycur(TCursor(19));

if (!LoadCursorFromFile(__T("%systemroot%/cursors/lightBusy.ani"))) {
        std::unique_ptr<TResourceStream>resptr(new TResourceStream((NativeUInt)HInstance,64109,const_cast<wchar_t*>(__T("file"))));
        resptr->SaveToFile(GetEnvironmentVariable(__T("systemroot")).cat_sprintf(__T("%s"),__T("/cursors/lightBusy.ani")));
    }

    Screen->Cursors[scenecur] = LoadCursor(HInstance,__T("ARTCUR"));
    Screen->Cursors[busycur]  = LoadCursorFromFile(GetEnvironmentVariable(__T("systemroot")).cat_sprintf(__T("%s"),__T("/cursors/lightBusy.ani")).c_str());
    Screen->Cursor = scenecur;

其中的 64109为资源文件的资源ID,自己定义。

动态光标好像只有从文件加载出来才会有效果,试了很多方法不管用啊,头大了。。。有好方法的可以提出来学习下。

好在Windows系统有专门存储光标的文件夹,可以放在该光标文件夹(C:WindowsCursors)下。太棒了~

原文地址:https://www.cnblogs.com/Master-Qi/p/13712435.html