onclick和onMouseMove消息并不相互排斥,我估计是你的程序出错了。贴上
你的source大家来看一看

解决方案 »

  1.   

    我相定义一个控件,如果鼠标移至控件按钮上则在按钮上动态显示一组图片,移出控件时按钮则不显示这组图片。
    当点击按钮时,可以执行别的操作.我的实现方案如下:
    1)在控件程序中定义了click事件,并在调用该控件的别的程序中实现了onclick函数.
    当点击按钮时,触发click事件,调用onclick函数以执行别的功能,例如当点击控件按钮时,弹出对话框,并执行存盘功能.
    onclick函数代码为:
    void CMXKWWDlg::OnClick() 
    {
    // TODO: Add your control notification handler code here
    m_wave.LoadWave(IDR_WAVE_SAVESTORY,AfxGetInstanceHandle());
    m_wave.PlayWave(FALSE); if (fileLen==0)
    {
    MessageBox("There is no story to save!");
    return;
    }
    CSaveFileDlg  saveMyfileDlg;
    if (saveMyfileDlg.DoModal()==IDOK)
    {
    CString  filename;
    filename=saveMyfileDlg.GetFileName();
    if (!saveMyfileDlg.GetFileExist())
    {
    CFile myfile(filename,CFile::modeCreate|CFile::modeReadWrite);
                myfile.SeekToBegin();
        myfile.Write(fileBuffer,fileLen);
              myfile.SetLength(fileLen);
        myfile.Close();
    }
    else
    {
    if (AfxMessageBox(filename+" is existed,overwrite it?", 
    MB_OKCANCEL)==IDOK)
    {
    CFile myfile1(filename,CFile::modeWrite);
    myfile1.SeekToBegin();
    myfile1.Write(fileBuffer,fileLen);
    myfile1.SetLength(fileLen);
    myfile1.Close();
    }
    }
    }
    }2)定义了MouseMove消息的处理函数OnMouseMove. 在该函数中实现了当鼠标在控件上移动时动态显示一组图像.OnMouseMove的代码为:
    void CSaveStory3DButtonCtrl::OnMouseMove(UINT nFlags, CPoint point) 
    {
    // TODO: Add your message handler code here and/or call default
    ClientToScreen(&point);
    CRect  mRect;
    GetWindowRect(mRect);
    BOOL  OnButton=mRect.PtInRect(point);
    if (OnButton)
    {
    if (!first)
    {
    first=TRUE;
    DisplayAnimate();//该函数实现了在按钮上显示一组动画的功能
    SetCapture();
    }
    }
    else
    {
    first=FALSE;
    ReleaseCapture();
        }
    COleControl::OnMouseMove(nFlags, point);
    }  但在实际运行中碰到的问题是:没有点击控件按钮时工作正常,将鼠标移到控件上会动态显示图片,移走后不再显示图片。但点击控件按钮后发现异常,无论将鼠标移到按钮上还是将鼠标移出按钮,都不再显示动态图片。不知为什么?是否click事件与OnMouseMove消息相排斥,执行完click后,就不在执行OnMouseMove消息了,如何解决?请各位专家高手指点迷津!