MFC-MoveWindow改变指定窗口的位置和大小

 

winAPI

 

    HWND hWnd = GetSafeHwnd();

    BOOL b=::MoveWindow(hWnd, 200, 100, 500, 400, TRUE);//改变指定窗口的位置和大小
    /*
    对基窗口来说,位置和大小取决于屏幕的左上角;
    对子窗口来说,位置和大小取决于父窗口客户区的左上角.
    对于Owned窗口,位置和大小取决于屏幕左上角

    参数1:HWND hWnd   窗口的句柄
    参数2:int X        x指定了CWnd的左边的新位置
    参数3:int Y        y指定了CWnd的顶部的新位置
    参数4:int nWidth   nWidth指定了CWnd的新宽度
    参数5:int nHeight  nHeight指定了CWnd的新高度
    参数6:BOOL bRepaint 指定了是否要重画CWnd。
            如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。
            如果这个参数为FALSE,则不会发生任何类型的重画操作
    返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零
    
    */

    

 

MFC

    HWND hWnd = GetSafeHwnd();
    CWnd* pWnd = CWnd::FromHandlePermanent(hWnd); //HWND转化为CWND

    pWnd->MoveWindow(200, 100, 500, 400, TRUE);//改变指定窗口的位置和大小
    /*
    
    参数1:int X        x指定了CWnd的左边的新位置
    参数2:int Y        y指定了CWnd的顶部的新位置
    参数3:int nWidth   nWidth指定了CWnd的新宽度
    参数4:int nHeight  nHeight指定了CWnd的新高度
    参数5:BOOL bRepaint 指定了是否要重画CWnd。
            如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。
            如果这个参数为FALSE,则不会发生任何类型的重画操作
    
    */

 

    HWND hWnd = GetSafeHwnd();
    CWnd* pWnd = CWnd::FromHandlePermanent(hWnd); //HWND转化为CWND

    CRect rect = {100,100,500,400};
    //参数1和参数2是左上角坐标   参数3和参数4是宽高

    pWnd->MoveWindow(&rect, TRUE); //改变指定窗口的位置和大小
    /*
    
    参数1:LPCRECT lpRect  
    参数2:BOOL bRepaint 指定了是否要重画CWnd。
            如果为TRUE,则CWnd象通常那样在OnPaint消息处理函数中接收到一条WM_PAINT消息。
            如果这个参数为FALSE,则不会发生任何类型的重画操作
    
    */

 

 

 

 

 

 

 

posted @ 2023-04-25 10:52  天子骄龙  阅读(499)  评论(0)    收藏  举报