一、MoveWindow

win32 API函数:
BOOL MoveWindow(HWND hWnd, int X, int Y, int nWidth, int nHeight, BOOL bRepaint);CWnd类成员函数:
void MoveWindow(int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE);
//x left, y top, nWidth 宽度, nHeight 高度
void MoveWindow(LPCRECT lpRect, BOOL bRepaint = TRUE);

一般使用类成员函数,在初始化函数中使用,移动控件位置,调整控件尺寸。

BOOL CMFC_MoveWindowDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);           // 设置大图标SetIcon(m_hIcon, FALSE);        // 设置小图标// TODO: 在此添加额外的初始化代码//::MoveWindow(GetSafeHwnd(), 0, 0, 600, 550, TRUE);//相对于屏幕左上角移动this->MoveWindow(0, 0, 600, 550);//这里并没有将对话框移动到屏幕左上角?可以设置窗口的属性!//但是不写在此函数中会生效return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}void CMFC_MoveWindowDlg::OnBnClickedOk()
{// TODO: 在此添加控件通知处理程序代码//CDialogEx::OnOK();this->MoveWindow(0, 0, 600, 550);//这里生效了
}

ps:

False为居中,改为True,对话框移动到屏幕左上角。

MoveWindow移动控件位置是相对于父窗口的客户区左上角。(反正是以上一个窗口为参照移动,具体要看情况)

void CMFC_MoveWindowDlg::OnBnClickedBtn2()
{// TODO: 在此添加控件通知处理程序代码GetDlgItem(IDOK)->MoveWindow(0, 0, 100, 80);
}

运行效果如下:

二、SetWindowPos(与MoveWindow用法相似,也是相对于父窗口或者屏幕移动)

1.

API函数:BOOL SetWindowPos( HWND hWnd, HWND hWndInsertAfter, int X, int Y, int cx, int cy, UINT uFlags);

hWnd 窗口句柄

hWndInsertAfter 对话框在Z轴上的显示顺序

#define HWND_TOP        ((HWND)0)
    #define HWND_BOTTOM     ((HWND)1)
    #define HWND_TOPMOST    ((HWND)-1)
    #define HWND_NOTOPMOST  ((HWND)-2)

nFlags 窗口尺寸和定位的标志

2.

CWnd类成员函数:BOOL SetWindowPos(const CWnd* pWndInsertAfter, int x, int y, int cx, int cy, UINT nFlags);

pWndInsertAfter 对话框在Z轴上的显示顺序(指针类型)

static AFX_DATA const CWnd wndTop;
    static AFX_DATA const CWnd wndBottom;
    static AFX_DATA const CWnd wndTopMost;
    static AFX_DATA const CWnd wndNoTopMost;

X 左上角x坐标,Y 左上角y坐标, cx 控件宽度, cy 控件高度

nFlags 窗口尺寸和定位的标志

#define SWP_NOSIZE          0x0001    不改变尺寸(忽略cx,cy)
    #define SWP_NOMOVE          0x0002    不移动窗口位置(忽略x,y)
    #define SWP_NOZORDER        0x0004    维持当前Z序(忽略hWndlnsertAfter参数)
    #define SWP_NOREDRAW        0x0008    
    #define SWP_NOACTIVATE      0x0010
    #define SWP_FRAMECHANGED    0x0020  /* The frame changed: send WM_NCCALCSIZE */
    #define SWP_SHOWWINDOW      0x0040    显示窗口
    #define SWP_HIDEWINDOW      0x0080    隐藏窗口
    #define SWP_NOCOPYBITS      0x0100
    #define SWP_NOOWNERZORDER   0x0200  /* Don't do owner Z ordering */
    #define SWP_NOSENDCHANGING  0x0400  /* Don't send WM_WINDOWPOSCHANGING */
    #define SWP_DRAWFRAME       SWP_FRAMECHANGED
    #define SWP_NOREPOSITION    SWP_NOOWNERZORDER
    #define SWP_DEFERERASE      0x2000
    #define SWP_ASYNCWINDOWPOS  0x4000

BOOL CMFC_CButtonDlg::OnInitDialog()
{CDialogEx::OnInitDialog();// 设置此对话框的图标。  当应用程序主窗口不是对话框时,框架将自动//  执行此操作SetIcon(m_hIcon, TRUE);           // 设置大图标SetIcon(m_hIcon, FALSE);        // 设置小图标// TODO: 在此添加额外的初始化代码//::SetWindowPos(GetSafeHwnd(), HWND_TOPMOST, 0, 0, -1, -1, SWP_NOSIZE);//没有移动到窗口左上角this->SetWindowPos(&wndTop, 0, 0, 700, 650, SWP_SHOWWINDOW);//移动到窗口左上角,并改变尺寸return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE
}

MoveWindow函数用法相关推荐

  1. 【OpenCV】OpenCV函数精讲之 -- moveWindow函数用法详解

    moveWindow()函数用于改变窗口的位置和尺寸 格式如下: BOOL moveWindow( const string& winname,int x, int y, int Width, ...

  2. MFC SetWindowPos与MoveWindow的用法

    MFC SetWindowPos与MoveWindow的用法 一.MoveWindow移动控件在对话框中的位置,改变控件大小. 例:按钮m_btn移动到坐标点为(x,y)处,宽度设为width,高度设 ...

  3. 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法

    目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...

  4. php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?

    foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...

  5. linux中awk下 gsub函数用法

    gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s ...

  6. ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)

    ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...

  7. 详细记录python的range()函数用法

    详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...

  8. python Pool常用函数用法总结

    在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...

  9. C++计算程序耗时函数用法汇总

    文章目录 前言 方法一(使用频率:常用) 方法二(使用频率:次之) 方法三(使用频率:常用) 补充:方法四 方法五 最常用的时间戳获取方法 前言 这里简单将自己在项目中经常用到的统计耗时的函数用法做个 ...

最新文章

  1. python入门(一)
  2. linux中级篇--网络相关命令
  3. java 运行环境变量,java运行环境 和 环境变量的配置
  4. Visual Studio 2010 -新特性,但我要的比这个更多!
  5. AutoDim:自动Embedding维度寻优,如何节省70%的存储空间同时还能大幅提效?
  6. C++编程问题汇总(方便日后查阅)
  7. 牛客网 在线编程 局部最小值位置
  8. 阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练
  9. powershell目录带空格_powershell - 如何在命令行的路径中运行带有空格的powershell脚本? - SO中文参考 - www.soinside.com...
  10. 部署Java web项目到阿里云服务器
  11. windows上cppcheck检查不出任何错误解决
  12. java基础篇---网络编程(TCP程序设计)
  13. 【路径规划】基于matlab GUI改进的DWA算法机器人动态避障路径规划【含Matlab源码 1271期】
  14. mac 环境 Android Studio升级后Gradle project Sync Failed解决方法
  15. QT下使用MapX控件的问题以及Activex技术
  16. uploadify上传插件完整Demo(包括后台)
  17. CnPack实用功能推荐
  18. hackinglab-脚本关10——基情燃烧的岁月
  19. Matlab/Simulink仿真问题及技巧汇总【持续更新】
  20. 移动端h5调起高德地图、百度地图实现路线及路况查询

热门文章

  1. 库存管理:批量入库怎么做?手机端也可以做
  2. redis map 过期时间_redis的过期时间和过期删除机制
  3. java backgroundpanel,java setLayout(null) 的异常
  4. 由浅入深完全理解Java动态代理
  5. 使用OpenCV实现卡通画效果
  6. Netty网络编程实战1,搭建第一个Netty服务器
  7. Python爬虫之request模块
  8. 用python画太阳花原理_用Python绘制诱人的桑基图,一眼看透熬夜和狗粮的秘密
  9. owncloud php7.3,CentOS 7 x64安装ownCloud9.0.3
  10. (三)基于cadence 617 的交流仿真、瞬态仿真 以电阻做负载共源级为例