首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

鼠标事件有关问题

2012-03-31 
鼠标事件问题请教下如何判断多少秒内,鼠标是否有点击,如果没有则调用个视频,如果有鼠标左键换个视频,右键

鼠标事件问题
请教下如何判断多少秒内,鼠标是否有点击,如果没有则调用个视频,如果有鼠标左键换个视频,右键换个视频

C/C++ code
if(Button==mbLeft)   {        }   if(Button==mbRight)   {   }
左右的我能实现,就是多少秒内无人点击的时候再触发个视频不知道怎么弄求指教

[解决办法]
在窗体的OnMouseDown事件里面判断点击的是左右键,至于单击的时间间隔你可以在这个事件里面判断离上一次单击发生的时间
C/C++ code
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift,          int X, int Y){EndTime = GetTickCount();if(((EndTime - StartTime)>10000)&&Button==mbLeft)   {    ShowMessage("左键相隔10秒后单击");   }   StartTime = GetTickCount();}//---------------------------------------void __fastcall TForm1::FormCreate(TObject *Sender){StartTime = GetTickCount();}
[解决办法]
弄一个全局的DWORD标志g_dwTick,鼠标每点击一次,就记录当前的Tick数:
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
g_dwTick = ::GetTickCount();
}

然后在定时器中不断的检测当前Tick数的值:

void __fastcall TForm1::tmr1Timer(TObject *Sender)
{
if (::GetTickCount() - g_dwTick >= 10000)
{
// 调用视频
}
}

热点排行