C++动画光标
问题描述:
我使用这个代码来调用动画光标C++ Builder中:C++动画光标
void __fastcall TcfListatArtikujtLst::FormActivate(TObject *Sender)
{
ActiveControl = cxGrid1;
Application->ProcessMessages();
const int cnCursorID1 = 1;
Screen->Cursors[cnCursorID1] = LoadCursorFromFile("cursors\\hourglas.ani");
Cursor = cnCursorID1;
try
{
dmDM1->prcArtikujt->Close();
dmDM1->prcArtikujt->Parameters->Refresh();
dmDM1->prcArtikujt->Prepared;
dmDM1->CDSArtikujt->Data = dmDM1->DSPArtikujt->Data;
dmDM1->CDSArtikujt->Open();
}
__finally
{
Screen->Cursor = crDefault;
}
}
问题是,动画生效ATRE尝试-finally块,不retun做默认光标。
干杯, Nijazi Citaku
答
我强烈怀疑光标加载,但不会改变,直到Windows的消息循环仍在继续。
尝试一个ProcessMessages AFTER从文件加载光标。
光标不会消失,因为您没有告诉窗体返回到正常光标。你已经告诉屏幕返回到正常光标。
尝试:
__finally
{
Cursor = crDefault;
}
答
这里是部份的解决方案:
void __fastcall TcfListatArtikujtLst::FormActivate(TObject *Sender)
{
ActiveControl = cxGrid1;
Application->ProcessMessages();
const int cnCursorID1 = 1;
Screen->Cursors[cnCursorID1] = LoadCursorFromFile("cursors\\hourglas.ani");
Application->ProcessMessages;
Screen->Cursor = cnCursorID1;
try
{
dmDM1->prcArtikujt->Close();
dmDM1->prcArtikujt->Parameters->Refresh();
dmDM1->prcArtikujt->Prepared;
dmDM1->CDSArtikujt->Data = dmDM1->DSPArtikujt->Data;
dmDM1->CDSArtikujt->Open();
}
__finally
{
Screen->Cursor = crDefault;
}
}
您有问题的编辑文本中上述的一些格式按钮。不要害怕使用它们,使您的问题和代码更易于阅读:) – 2010-09-07 11:50:21