关于 ActiveX 控件 onclick和onMouseMove消息并不相互排斥,我估计是你的程序出错了。贴上你的source大家来看一看 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我相定义一个控件,如果鼠标移至控件按钮上则在按钮上动态显示一组图片,移出控件时按钮则不显示这组图片。当点击按钮时,可以执行别的操作.我的实现方案如下: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消息了,如何解决?请各位专家高手指点迷津! 多线程串口通信问题??? 多显示器显示模式的问题 对dump出的地址不解。 如何返回数组指针 如何使对话框中的一个文本框自动获取焦点? 游戏开发 如何获取Dispatch接口中的事件? VC中有没有和VB类似的Timer控件吗? 有会用vc做连连看游戏的吗? 只需要动态效果部分. HID USB读写总是返回失败,获取错误码是997,求指点 有关cwebbrowser控件的问题(狂送100分) 关于菜单的小问题!哪位能慷慨解决!给100分请求解答
当点击按钮时,可以执行别的操作.我的实现方案如下:
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消息了,如何解决?请各位专家高手指点迷津!