首页 > 其他分享 >MFC-SetWindowPos改变窗口的尺寸,位置和Z序

MFC-SetWindowPos改变窗口的尺寸,位置和Z序

时间:2023-04-26 10:55:20浏览次数:43  
标签:顶层 MFC 窗口 HWND 尺寸 hWnd SWP 参数 SetWindowPos

 

    HWND hWnd = ::FindWindow(_T("Notepad"), NULL);//获取记事本窗口
    if (!hWnd) {
        AfxMessageBox(_T("请打开记事本"));
        ExitProcess(0);
    }
    
    BOOL b = ::SetWindowPos(hWnd, HWND_TOP, 100, 100, 500, 400, SWP_SHOWWINDOW);//改变窗口的尺寸,位置和Z序
    /*
    参数1:HWND hWnd    //窗口句柄
    参数2:HWND hWndInsertAfter   //窗口显示位置,见下表
            HWND_BOTTOM=1   将窗口置于Z序的底部。如果参数hWnd标识了一个顶层窗口,则窗口失去顶层位置,并且被置在其他窗口的底部
            HWND_NOTOPMOST=-2 将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。如果窗口已经是非顶层窗口则该标志不起作用
            HWND_TOP=0,    将窗口置于Z序的顶部
            HWND_TOPMOST=-1,将窗口置于所有非顶层窗口之上。即使窗口未被激活窗口也将保持顶级位置
    参数3:int X   以hWnd客户坐标指定窗口新位置的左边界
    参数4:int Y   以hWnd客户坐标指定窗口新位置的顶边界
    参数5:int cx   宽度
    参数6:int cy   高度
    参数7:UINT uFlags  窗口尺寸和定位的标志。该参数可以是下列值的组合:
            SWP_ASYNCWINDOWPOS:    //如果调用进程不拥有窗口,系统会向拥有窗口的线程发出需求。
            SWP_DEFERERASE;    //防止产生WM_SYSNCPAINT消息
            SWP_DRAWFRAME:        //在窗口周围画个边框(定义在窗口类中描述)
            SWP_FRAMECHANGED:    //给窗口发送WM_NCCALCSIZE消息,即使窗口尺寸没改变也发送
            SWP_HIDEWINDOW:        //隐藏窗口
            SWP_NOACTIVATE:        //不激活窗口
            SWP_NOCOPYBITS:        //清除客户区的所有内容
            SWP_NOMOVE:            //不改变当前位置,忽略X和Y的值
            SWP_NOOWNERZORDER:    //不改变Z序中的位置
            SWP_NOREDRAW:        //不重绘改变的内容
            SWP_NOREPOSITION:    //与SWP_NOOWNERZORDER相同
            SWP_NOSENDCHANGING:    //防止窗口接收WM_WINDOWPOSCHANGING消息
            SWP_NOSIZE:            //维持当前大小(忽略cx和cy的值)
            SWP_NOZORDER:        //维持当前Z序
            SWP_SHOWWINDOW:        //显示窗口
    
    返回值:成功返回非0,失败返回0
            
    */

    

 

 

 

 

 

标签:顶层,MFC,窗口,HWND,尺寸,hWnd,SWP,参数,SetWindowPos
From: https://www.cnblogs.com/liming19680104/p/17354990.html

相关文章

  • MFC-GetTopWindow获取指定窗口的子窗口中最顶层的窗口句柄
     //GetTopWindowHWNDhWnd=::FindWindow(_T("#32770"),_T("测试程序"));if(!hWnd){AfxMessageBox(_T("请打开测试程序"));ExitProcess(0);}CStringstr;str.Format(_T("主窗口句柄:hWnd=%d\r\n&q......
  • MFC-BringWindowToTop将指定窗口设置到Z序的顶部
     HWNDhWnd=::FindWindow(_T("Notepad"),NULL);BOOLb=::BringWindowToTop(hWnd);//将指定窗口设置到Z序的顶部/*如果窗口为顶层窗口,则该窗口被激活;如果窗口为子窗口,则相应的顶级父窗口被激活参数:HWNDhWnd设置到Z序顶部的窗口句柄返回值:......
  • pandas.DataFrame—构建二维、尺寸可变的表格数据结构
    语法格式pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=None)常用的几个参数解释:data:一系列数据,包括多种类型;index:索引值,行标签,默认值为RangeIndex(0,1,2,…,n);columns:列标签,默认值为RangeIndex(0,1,2,…,n);dtype:设置数据......
  • MFC-ScreenToClient屏幕坐标转换为客户区坐标
     win32APIPOINTpoint={20,50};HWNDhWnd=GetSafeHwnd();BOOLb=::ScreenToClient(hWnd,&point);//屏幕坐标转换为客户区坐标/*参数1:HWNDhWnd窗口句柄参数2:LPPOINTlpPoint屏幕坐标点函数成功后,保......
  • MFC-GetClientRect获取窗口客户区的坐标
     win32APIRECTrect;CWnd*pWnd=GetDlgItem(IDC_LIST1);HWNDhWnd=pWnd->GetSafeHwnd();BOOLb=::GetClientRect(hWnd,&rect);//获取窗口客户区的坐标/*参数1:HWNDhWnd窗口句柄参数2:LPRECTlpRect返回客户区坐标......
  • MFC-CreateProcess创建一个新的进程和它的主线程并执行外部程序
     CONSTTCHARpath[]=_T("C:\\Users\\Administrator\\Desktop\\test.exe");PROCESS_INFORMATIONinfo;STARTUPINFOsi={sizeof(si)};BOOLb=CreateProcess(path,NULL,NULL,NULL,FALSE,NULL,NULL,NULL,&si,&info);/......
  • MFC-SHGetSpecialFolderPath获取指定的系统路径
     CStringstr;TCHARpath[MAX_PATH];BOOLb=SHGetSpecialFolderPath(NULL,path,CSIDL_PROGRAM_FILES_COMMONX86,0);//获取指定的系统路径/*参数1:HWNDhwndOwner窗口所有者的句柄。可以NULL参数2:LPTSTRlpszPath返回路径的缓冲区,该缓......
  • MFC-IsWow64Process 32位进程是否运行在64位操作系统中
     CStringstr;BOOLbIsWow64=FALSE;BOOLb=IsWow64Process(GetCurrentProcess(),&bIsWow64);//32位进程是否运行在64位操作系统中/*指定进程是否运行在64位操作系统的32环境(WOW64)下参数1:HANDLEhProcess进程的句柄。句柄必须具有PROCESS_......
  • MFC-GetCurrentProcess获取当前进程的伪句柄
     CStringstr;HANDLEhandle=GetCurrentProcess();//获取当前进程的伪句柄/*返回当前进程的伪句柄(始终返回-1)不要直接使用-1这个值,为了将来的兼容性请使用GetCurrentProcess伪句柄可以在当前进程中使用,如果需要跨进程通信,那么必须拿出自己真实......
  • MFC-GetNativeSystemInfo获取当前CPU信息
     CStringstr;SYSTEM_INFOlpSystemInfo;GetNativeSystemInfo(&lpSystemInfo);//获取当前CPU信息/*在一个64位的应用中调用此函数,那它等效于GetSystemInfo*/WORDw=lpSystemInfo.wProcessorArchitecture;//处理器的体系结构......