以前用过SetWindowpos和WindowMove,在自己写的程序里很好实现窗口移动,但是如果是移动其他进程的窗口,很多情况下对方进程并不响应,为此想用SendMessage的方法实现窗口移动,试了很多消息如WM_MOVE,WM_MOVING都不行,请问哪位大侠知道,给指点指点,多谢了 

解决方案 »

  1.   

    这是MFC版块,在你找到目标窗口的句柄的情况下,可以用Attach到一个新的CWnd对象上,之后不用用SendMessage来控制,就和正常情况一样,用MoveWindow来控制就行
    例如
    //hMyWnd是目标窗口的句柄
    CWnd *pWnd = new CWnd();
    pWnd->Attach(hMyWnd);
    pWnd->MoveWindow(0,0,100,100);
    pWnd->Detach(hMyWnd);
    delete pWnd;
      

  2.   

      移动时窗口发出消息 WM_MOVING,WM_SIZING 
      移动后窗口发出消息 WM_MOVE,   WM_SIZE移动窗口我只是用过SetWindowpos和WindowMove来完成,不知道还有别的办法?你检查一下你是否获取了正确的窗口句柄?
      

  3.   

    移动其他进程的窗口可以用FindWindow()函数得到窗口句柄,再用MoveWindow来移动窗口
      

  4.   


    ::MoveWindow();
    前边放别的窗口的句柄 
      

  5.   

    感谢以上各位,我的现在问题是,句柄是首先用SPy++获取好的,使用MoveWindow对某些窗口(如千千静听)有用,而对于如Window7下的手写输入板就无效。所以才想到采用SendMessage的方法
    不知道有谁做过用SendMessage方法的,MoveWindow不能用