用了LockWindowUpdate(hwnd)怎么窗口还可以移动?不是说A Locked windows cannot be moved?

解决方案 »

  1.   

    The LockWindowUpdate function disables or enables drawing in the specified window. Only one window can be locked at a time. BOOL LockWindowUpdate(
      HWND hWndLock   // handle to window
    );hWndLock 
    [in] Specifies the window in which drawing will be disabled. If this parameter is NULL, drawing in the locked window is enabled. 只是禁止画图
      

  2.   

    LockWindowUpdate
    The LockWindowUpdate function disables or enables drawing in the specified window. Only one window can be locked at a time. BOOL LockWindowUpdate(
      HWND hWndLock   // handle to window
    );
    Parameters
    hWndLock 
    [in] Specifies the window in which drawing will be disabled. If this parameter is NULL, drawing in the locked window is enabled. 
    Return Values
    If the function succeeds, the return value is nonzero.If the function fails, the return value is zero, indicating that an error occurred or another window was already locked. Windows NT/2000/XP: To get extended error information, call GetLastError.Res
    If an application with a locked window (or any locked child windows) calls the GetDC, GetDCEx, or BeginPaint function, the called function returns a device context with a visible region that is empty. This will occur until the application unlocks the window by calling LockWindowUpdate, specifying a value of NULL for hWndLock. If an application attempts to draw within a locked window, the system records the extent of the attempted operation in a bounding rectangle. When the window is unlocked, the system invalidates the area within this bounding rectangle, forcing an eventual WM_PAINT message to be sent to the previously locked window and its child windows. If no drawing has occurred while the window updates were locked, no area is invalidated. LockWindowUpdate does not make the specified window invisible and does not clear the WS_VISIBLE style bit. A locked window cannot be moved. 
    MSDN上就这么写的
      

  3.   

    刚才看急了!!
    不过给我的感觉是 在移动的时候只有松开鼠标的就会自动解除锁定 在有些事件发生的时候 特别是用户的一些事件 系统会自动解除被锁定的窗口可能 MSDN 上漏掉了  说笑了
      

  4.   

    LockWindowUpdate(AfxGetApp()->GetMainWnd());试试 
    或者是Lock(WindowUpdate)
      

  5.   

    The LockWindowUpdate function disables or reenables drawing in the specified window
    根移动不移动没关系啊