在控件上拖动鼠标左键做a事
在控件上拖动鼠标右键做b事我现在想把他改成
在控件上拖动鼠标右键做b事
在控件上拖动鼠标左键做a事保存原来的窗口过程
ImagePro = (WNDPROC)GetWindowLong(m_ImageEditor.m_hWnd, GWL_WNDPROC);
if(ImagePro==0)
{
return;
}设置新的窗口过程
SetWindowLong(m_ImageEditor.m_hWnd, GWL_WNDPROC, (long)NewImagePro);LRESULT CALLBACK NewImagePro(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{ 这里要怎样写啊,下面的注释是我原来的,起了一点点作用
/*if(message==WM_MOUSEMOVE)
{
if((wParam & MK_LBUTTON) ==MK_LBUTTON)
wParam  = (wParam & ~MK_LBUTTON)  | MK_RBUTTON;
else if((wParam & MK_RBUTTON)==MK_RBUTTON)
wParam =(wParam & ~MK_RBUTTON) | MK_LBUTTON; }*/ return  CallWindowProc(ImagePro, hWnd, message, wParam, lParam);
}
/*分拿去赌球了,大家将就点娥*/

解决方案 »

  1.   

    哈哈
    自己搞定了
    if(message==WM_MOUSEMOVE)
    {
    if((wParam & MK_LBUTTON) ==MK_LBUTTON)
    wParam  = (wParam & ~MK_LBUTTON)  | MK_RBUTTON;
    else if((wParam & MK_RBUTTON)==MK_RBUTTON)
    wParam =(wParam & ~MK_RBUTTON) | MK_LBUTTON; }
    else if(message == WM_LBUTTONDOWN)
    {
    message = WM_RBUTTONDOWN;
    }
    else if(message == WM_LBUTTONUP)
    {
    message = WM_RBUTTONUP;
    }
    else if(message == WM_RBUTTONDOWN)
    {
    message = WM_LBUTTONDOWN;
    }
    else if(message == WM_RBUTTONUP)
    {
    message = WM_LBUTTONUP;
    }
      

  2.   

    我以为有WM_MOUSEUP/DOWN消息的
    查msdn没找到
    后来看WM_MOUSEMOVE的定义才找到其他消息的
      

  3.   

    在控件上拖动鼠标左键做a事
    在控件上拖动鼠标右键做b事我现在想把他改成
    在控件上拖动鼠标右键做b事
    在控件上拖动鼠标左键做a事 看懵了,这不是一回事吗?
      

  4.   

    在控件上拖动鼠标左键做a事 
    在控件上拖动鼠标右键做b事 我现在想把他改成 
    在控件上拖动鼠标右键做a事 
    在控件上拖动鼠标左键做b事