首先,我想知道,windows一共有几种鼠标响应,比如 单击左键,单击右键,单击中间键……,双击左键怎么表示的?
其次,我想知道按住鼠标中间键2秒钟后,响应一个事件,怎么写呀?请在关键地方尽量详细一些!
其次,我想知道按住鼠标中间键2秒钟后,响应一个事件,怎么写呀?请在关键地方尽量详细一些!
解决方案 »
- 我的EVC4.0怎么没有WCE Pocket PC 2002 Application和WCE Pocket PC 2002 MFC AppWizard[exe]
- CTreeCtrl的水平滚动条
- activex视频播放问题
- 如何在onmoving函数里知晓左键的抬起
- 如何使我的程序在启动时不创建一个新文档?
- 停止服务时出现错误997:重叠I/O操作在进行中,附代码
- 哪位大虾能提供一些利于初学者的API源代码(VC)?
- 如何移动位图数据区的指针~~?
- 关于_ConnectionPtr重新连接的问题
- 编译时刻却出现这样的错误,如下:
- 在SDI中,VIEW窗体中有BOOL b;在另一个窗体中如何取得b的值?
- 怎样调试多线程?
{
if(pMsg->message==WM_MBUTTONDOWN)
{
SetTimer(0,2000,NULL); //设立计数器,时间为2000
}
return CDialog::PreTranslateMessage(pMsg);
}然后在OnTimer函数中加入你的处理代码。
这样的效果就是按下鼠标中键,等两秒后,触发你的事件。
在OnTimer中你的处理代码之后,可以KillerTimer。
单击右键消息:WM_RBUTTONDOWN
这期间捕捉鼠标的up消息,如果鼠标up,则停止定时器。这样就实现了按住鼠标两秒才开始动作的效果。
{
static UINT uiTimeerID = -1;
if(pMsg->message==WM_MBUTTONDOWN)
{
uiTimeerID = SetTimer(0,2000,NULL); //设立计数器,时间为2000
}
//还要加上
else if(pMsg->message==WM_MBUTTONUP)
{
if(uiTimeerID != (UINT)(-1))
KillTimer(uiTimeerID);
} return CDialog::PreTranslateMessage(pMsg);
}
{
if(pMsg->message==WM_MBUTTONDOWN)
{
SetTimer(0,2000,NULL); //设立计数器,时间为2000
}
if(pMsg->message==WM_MBUTTODNUP)
{
KillTimer(0); //检测到中间按键放开的操作的时候,销毁计时器
}
return CDialog::PreTranslateMessage(pMsg);
}这样应该可以了。