case WM_LBUTTONDOWN:
xPos=LOWORD(lParam);
yPos=HIWORD(lParam); break; case WM_MOUSEMOVE:

ptMouse.x=LOWORD(lParam);
ptMouse.y=HIWORD(lParam); MoveToEx(GetDC(hWnd),xPos,yPos,NULL);
LineTo(GetDC(hWnd),ptMouse.x,ptMouse.y);
wsprintf(szTitle,"Mouse Position: X=%d     ,Y=%d     ",ptMouse.x,ptMouse.y);
TextOut(GetDC(hWnd),500,200,szTitle,strlen(szTitle));
InvalidateRect(hWnd,NULL,FALSE);
xPos=ptMouse.x;
xPos=ptMouse.y; break;

解决方案 »

  1.   

    xpos,ypos是静态的吧,初值为0,你只要一移鼠标,划线就开始了,你是不是想左键按一下后才开始画线?
      

  2.   

    你的xPos,yPos在哪儿定义的,是全局变量吗?
      

  3.   

    xpos,ypos是不是静态的,不是全局变量你在case WM_LBUTTONDOWN     xPos=LOWORD(lParam);
         yPos=HIWORD(lParam);WM_LBUTTONDOWN 消息结束后 xpos = ypos = 0;
     
    正确的写法 static xpos,ypos;
      

  4.   

    ;一开始把xpos=ypos=0;        case WM_MOUSEMOVE:
            
                ptMouse.x=LOWORD(lParam);
                ptMouse.y=HIWORD(lParam);if(xPos!=0 ||yPos!=0)
    {
                MoveToEx(GetDC(hWnd),xPos,yPos,NULL);
                LineTo(GetDC(hWnd),ptMouse.x,ptMouse.y);
    ...
    }
    );
                xPos=ptMouse.x;
                xPos=ptMouse.y;            
      

  5.   

    to  qunta(旺财1860) "
    不可以
      

  6.   

    你写错了吧
    xPos=ptMouse.x;
    xPos=ptMouse.y;//应该是yPos=ptMouse.y;吧
      

  7.   

    试试在
    case WM_LBUTTONDOWN:
    xPos=ptMouse.x=LOWORD(lParam);
    yPos=ptMouse.y=HIWORD(lParam);
      

  8.   

    xPos/yPos老是变?有必要在MouseMove里改变这2个值吗?看你还4个▲
      

  9.   

    MoveToEx(GetDC(hWnd),xPos,yPos,NULL);
                LineTo(GetDC(hWnd),ptMouse.x,ptMouse.y);    HDC pDC = GetDC(hWbd);
              MoveToEx(pDC,xPos,yPos,NULL);
                LineTo(pDC,ptMouse.x,ptMouse.y);
    绝对OK
      

  10.   

    http://www.csdn.net/expert/topic/653/653185.xml?temp=.9769861