我在mfc做的ocx控件的onmove函数中写如下代码
void CHCOCX5Ctrl::OnMove(int x, int y)
{
COleControl::OnMove(x, y); // TODO: 在此处添加消息处理程序代码
AfxMessageBox("moving");
}
测试时,只有在显示时弹出了messagebox,之后用鼠标移动控件,没有messagebox弹出,请问是为什么? 而且,OnMoving()函数根本从来不起作用。像这样
void CHCOCX5Ctrl::OnMoving(UINT fwSide, LPRECT pRect)
{
COleControl::OnMoving(fwSide, pRect); // TODO: 在此处添加消息处理程序代码
AfxMessageBox("moving2");
}我的目的是想使一个非模态对话框跟随控件移动,除了这样可以有其它方法吗?谢谢
void CHCOCX5Ctrl::OnMove(int x, int y)
{
COleControl::OnMove(x, y); // TODO: 在此处添加消息处理程序代码
AfxMessageBox("moving");
}
测试时,只有在显示时弹出了messagebox,之后用鼠标移动控件,没有messagebox弹出,请问是为什么? 而且,OnMoving()函数根本从来不起作用。像这样
void CHCOCX5Ctrl::OnMoving(UINT fwSide, LPRECT pRect)
{
COleControl::OnMoving(fwSide, pRect); // TODO: 在此处添加消息处理程序代码
AfxMessageBox("moving2");
}我的目的是想使一个非模态对话框跟随控件移动,除了这样可以有其它方法吗?谢谢
解决方案 »
- 求高人!如何提高绘图效率!
- 将VS2008的DEMO转换成VC6.0下可执行代码 追分+RMB
- 请问我在编译CPP_UNIT_TEST时为什么会出现以下错误
- 已知Bezier曲线的4个点(起点,两个控制点,终点)请问,如何能算出在起点和终点之间的两个曲线上的点!
- 一段程序代码完成一封邮件的发送,如何立即得到该邮件的UIDL?
- 本周最后一个问题,高分。如何从HICON里取得dib信息
- 請教:GetMessage是不是沒有取到消息就不返回???
- 请教各位高手,如果一个没有太多计算机基础的人想学习编程,他应该怎样开始学习?
- 我不知道怎样来编程!《深入浅出MFC》看也看懂,就是不知道自己该怎么做?
- 关于HOOK按键无限弹消息框
- 用ADO如何修改一个记录(穷死了,大虾帮忙一下)??
- 在Win32下,怎样在工具栏中添加一个按钮
{
COleControl::OnMoving(fwSide, pRect); // TODO: 在此处添加消息处理程序代码
if(hMainWnd!=NULL)::SendMessage(hMainWnd, WM_MOUSEMOVE, point.x, point.y); AfxMessageBox("moving2");
}
{
// TODO: Add your message handler code here and/or call default
if(!m_bDraw)return;
/// FireMouseMove((long)nFlags, (short)point.x, (short)point.y);
CPoint3D tMark; Env.MousePos.x =point.x;
Env.MousePos.y =point.y;
if(Env.bIsMoveable && bIsLBD)
{
SetCursor(Cursor_Drive);
}
CClientDC ClientDC(this);
wglMakeCurrent(ClientDC.m_hDC,Env.hglrc);
if(MarkPoint.bActive)
{
Env.MarkPoint3D.x += (point.x - OldMouseCoor[X])*Env.RoamGesture.DistStareEye/1000.0;
Env.MarkPoint3D.y += (point.y - OldMouseCoor[Y])*Env.RoamGesture.DistStareEye/1000.0;
OldMouseCoor[X] = point.x ;
OldMouseCoor[Y] = point.y ;// MarkPoint.MakeModel(Env.MarkPoint3D.x,Env.MarkPoint3D.y,Env.MarkPoint3D.z,tP3D.x,tP3D.y);
}
else
{
// tMark = GetMouseModelCoordinate(point);
// MarkPoint.MakeModel(tMark.x,tMark.y,tMark.z,tP3D.x,tP3D.y);
// Env.MarkPoint3D = MarkPoint.GetCoor();
Env.MarkPoint3D = GetMouseModelCoordinate(point);
}/* if(g_bLinkMode && Env.StereoMode & STEREO_DBC_M)
{
Env.SendStereoParameter();
NetNotifyLink(&vMP,sizeof(vMPamOver));//ÓÃÓÚË«»ú
}*/
/// DisplayMouseModelCoordinate();
wglMakeCurrent(ClientDC.m_hDC,NULL);
if(hMainWnd!=NULL)::SendMessage(hMainWnd, WM_MOUSEMOVE, point.x, point.y);
COleControl::OnMouseMove(nFlags, point);
}