鼠标停留在一条线1秒后弹出提示信息该怎么实现呢

解决方案 »

  1.   


    void CDlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
    //获取控件的客户区坐标(你的画线)
    GetDlgItem(IDC_STATIC_LINE)->GetWindowRect(&m_rcRect); 
    ScreenToClient(m_rcRect); if(PtInRect(&m_rcRect,point))
    {//如果停止上面则设置timer
    SetTimer(1, 1000, NULL); //一秒钟
    }
    else
    {//没有的话killtimer
    KillTimer(1);
    } CDialog::OnMouseMove(nFlags, point);
    }void CDlg::OnTimer(UINT nIDEvent) 
    {
    // TODO: Add your message handler code here and/or call default
    UpdateData();
    switch(nIDEvent)
    {
    case 1:
    {
    MessageBox("在线上");
    KillTimer(1);//弹出一次提示框后杀掉timer,否则会重复弹框
    }
    break;
    default:
        break;
    }
    CDialog::OnTimer(nIDEvent);
    }