在sdk中要实现可以拖动的窗体应该怎么实现?请各位指教。

解决方案 »

  1.   

    请参照VC向导生成Win32 Application的程序。
    注意:
    在Win32 Applicaton - Step 1 of 1向导对话框中选择A typical "Hello World!" application选项
      

  2.   

    case WM_LBUTTONDOWN:
    SetCapture(hDlg);
    bMouseDown = TRUE;
    point.x = (short) LOWORD(lParam);
    point.y = (short) HIWORD(lParam);
    ClientToScreen(hwnd, &point);
    break;
    case WM_LBUTTONUP:
    ReleaseCapture();
    bMouseDown = FALSE;
    break;
    case WM_MOUSEMOVE:
    {
    if (!bMouseDown) break;
    POINT pt;
    RECT rect;
    GetWindowRect(hwnd, &rect);
    pt.x = (short) LOWORD(lParam);
    pt.y = (short) HIWORD(lParam);
    ClientToScreen(hwnd, &pt);
    OffsetRect(&rect, pt.x-point.x, pt.y-point.y);
    SetWindowPos(hwnd, NULL, rect.left, rect.top, 0, 0, SWP_NOSIZE);
    point.x = pt.x;
    point.y = pt.y;
    break;
    }
      

  3.   

    vb中是这样,VC中应该也差不多吧。
    i = ReleaseCapture()
    rr = SendMessage(hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0)
    改下语法就行了。
      

  4.   

    WM_LBUTTONDOWN中PostMessage(hWnd,WM_NCLBUTTONDOWN,  HTCAPTION,0)
      

  5.   

    Zhymax(蓝点)说得很清楚了
    关键就是纪录相关鼠标消息,然后让窗口自己move自己