关于opencv中cvSetMouseCallback函数的有关问题

关于opencv中cvSetMouseCallback函数的问题
这样一个类:
*****************************************************************************************
class BallDetect
{
public:
void myMouseCallback( int event, int x, int y, int flags, void* param);
void setMouseCallBack()
{
cvSetMouseCallback( "Find Color Mode", myMouseCallback, (void*) src)
}
void run();
};
*****************************************************************************************
其中cvSetMouseCallback()第二个参数提示说,myMouseCallback该实参与cvSetMouseCallback的形参不兼容。
我看一些一些示例程序中,如:
******************************************************************************************
int main(int argc, char** argv)
{
  CvCapture *capture;
  IplImage *frame;

  capture =cvCaptureFromCAM(0) ;
  cvNamedWindow("Webcam",0);
  cvSetMouseCallback("Webcam",onMouse,NULL);
  while(true)
  {
  frame = cvQueryFrame(capture);

  cvShowImage("Webcam",frame);

  if(cvWaitKey(10)>=0)
  {
  break;
  }
  }
  cvReleaseCapture(&capture);
  cvDestroyWindow("Webcam");

  return 0;
}
void onMouse(int Event,int x,int y,int flags,void* param )
{
  printf("( %d, %d) ",x,y);
  printf("The Event is : %d ",Event);
  printf("The flags is : %d ",flags);
  printf("The param is : %d\n",param);
}
******************************************************************************
其中cvSetMouseCallback的第二形参用的就是void onMouse()函数的函数名。

请问大家为什么会出现上述的问题?怎么解决该问题?
对你的帮助表示真诚的感谢~~~

------解决方案--------------------
在class中的话,应该用静态函数,比如static void myMouseCallback(int event, int x, int y, int flags, void* param)这样定义。