sendmessage呀
SendMessage(hwnd,WM_LBOTTOUP,0,0);

解决方案 »

  1.   

    VOID mouse_event(
      DWORD dwFlags, // flags specifying various motion/click variants
      DWORD dx,      // horizontal mouse position or position change
      DWORD dy,      // vertical mouse position or position change
      DWORD dwData,  // amount of wheel movement
      DWORD dwExtraInfo 
                     // 32 bits of application-defined information
    );
    可以模擬鼠標對任一點的動作
    如果知道Window Hander(HWND), 當然用PostMessage啦
      

  2.   

    可是用SendMessage()如何传递CPoint参数呢?用LPARAM强制转换编译通不过!
      

  3.   

    他要的是指针吧。 try (lparam) &point
      

  4.   

    我用了(LPARAM) &point,可传值有误,原来point(75,66),到了 OnLButtonUp那里变成了
    (-2836,18),请继续赐教
      

  5.   

    不知,你能不能换一个角度想一下,不需要用到mouse消息。
    我是这样想的,在对话框里我实现过,但在表格里我也没用过。这仅仅是给你一点参考。
    你可以从表格类中派生一个类CChildList,在这个类中你可以处理下每个ON_WM_KEYDOWN,
    在其响应函数中对你每从键盘输入一个字符进行比较,看其是否在规定范围之内。如果不在就....(按你想的做吧)。
    也许这个提议是错误的。不过你可以试试。
      

  6.   

    是不是应该用一个传递MSG结构的函数?因为MSG结构里有POINT数据类型,若是鼠标消息,应该是
    鼠标点击时的位置吧。不知道DispatchMessage可不可以,我没试过,只是个建议。
      

  7.   

    SendMessage(hwnd,WM_LBUTTONUP,0,MAKEWORD(x,y));
    解决方法当然很多,就sendmessage来说,应该是这样的。
    反过来这样:
    xPos = GET_X_LPARAM(lParam); 
    yPos = GET_Y_LPARAM(lParam); 
      

  8.   

    用sendmessage()发送鼠标信息,其参数wParam表示要传递的虚拟键盘值,而传送的lParam参数的高字节是鼠标Y坐标,低字节是鼠标X坐标。
      

  9.   


      GetCursorPos(Point);  try
        Mouse_Event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTDOWN, Point.X, Point.Y, 0, GetMessageExtraInfo);    x:=10;
        y:=10;
        SetCursorPos(X, Y);    Mouse_Event(MOUSEEVENTF_ABSOLUTE+MOUSEEVENTF_LEFTUP, X, Y, 0, GetMessageExtraInfo);  except
        ShowMessage('Error');  end;
      

  10.   

    SetCursorPos(ptNew.x,ptNew.y);
    if(flag==1){
    ::mouse_event(MOUSEEVENTF_LEFTDOWN,ptNew.x,ptNew.y,0,0);
    flag=2;
    }
    if(flag==2){
    ::mouse_event(MOUSEEVENTF_LEFTUP,ptNew.x,ptNew.y,0,0);
    flag=0;

    }
      

  11.   

    用 PostMessage
    或者直接调用相应的OnLButtonUp方法。