MoveWindow函数用法
一、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函数用法相关推荐
- 【OpenCV】OpenCV函数精讲之 -- moveWindow函数用法详解
moveWindow()函数用于改变窗口的位置和尺寸 格式如下: BOOL moveWindow( const string& winname,int x, int y, int Width, ...
- MFC SetWindowPos与MoveWindow的用法
MFC SetWindowPos与MoveWindow的用法 一.MoveWindow移动控件在对话框中的位置,改变控件大小. 例:按钮m_btn移动到坐标点为(x,y)处,宽度设为width,高度设 ...
- 2021年大数据常用语言Scala(三十七):scala高级用法 高阶函数用法
目录 高阶函数用法 作为值的函数 匿名函数 柯里化(多参数列表) 闭包 高阶函数用法 Scala 混合了面向对象和函数式的特性,在函数式编程语言中,函数是"头等公民",它和Int. ...
- php foreach嵌套foreach,php中foreach怎么嵌套foreach PHP中foreach函数用法?
foreach的使用方法小编不是很明确,分享达人指教一下.foreach (array_expressforeach($array as $key) { if(xxxx) { break; //bre ...
- linux中awk下 gsub函数用法
gsub函数则使得在所有正则表达式被匹配的时候都发生替换 gsub(regular expression, subsitution string, target string);简称 gsub(r,s ...
- ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多)
ROW_NUMBER() OVER()函数用法详解 (分组排序 例子多) https://blog.csdn.net/qq_25221835/article/details/82762416 post ...
- 详细记录python的range()函数用法
详细记录python的range()函数用法 使用python的人都知道range()函数很方便,今天再用到他的时候发现了很多以前看到过但是忘记的细节.这里记录一下range(),复习下list的sl ...
- python Pool常用函数用法总结
在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...
- C++计算程序耗时函数用法汇总
文章目录 前言 方法一(使用频率:常用) 方法二(使用频率:次之) 方法三(使用频率:常用) 补充:方法四 方法五 最常用的时间戳获取方法 前言 这里简单将自己在项目中经常用到的统计耗时的函数用法做个 ...
最新文章
- python入门(一)
- linux中级篇--网络相关命令
- java 运行环境变量,java运行环境 和 环境变量的配置
- Visual Studio 2010 -新特性,但我要的比这个更多!
- AutoDim:自动Embedding维度寻优,如何节省70%的存储空间同时还能大幅提效?
- C++编程问题汇总(方便日后查阅)
- 牛客网 在线编程 局部最小值位置
- 阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练
- powershell目录带空格_powershell - 如何在命令行的路径中运行带有空格的powershell脚本? - SO中文参考 - www.soinside.com...
- 部署Java web项目到阿里云服务器
- windows上cppcheck检查不出任何错误解决
- java基础篇---网络编程(TCP程序设计)
- 【路径规划】基于matlab GUI改进的DWA算法机器人动态避障路径规划【含Matlab源码 1271期】
- mac 环境 Android Studio升级后Gradle project Sync Failed解决方法
- QT下使用MapX控件的问题以及Activex技术
- uploadify上传插件完整Demo(包括后台)
- CnPack实用功能推荐
- hackinglab-脚本关10——基情燃烧的岁月
- Matlab/Simulink仿真问题及技巧汇总【持续更新】
- 移动端h5调起高德地图、百度地图实现路线及路况查询
热门文章
- 库存管理:批量入库怎么做?手机端也可以做
- redis map 过期时间_redis的过期时间和过期删除机制
- java backgroundpanel,java setLayout(null) 的异常
- 由浅入深完全理解Java动态代理
- 使用OpenCV实现卡通画效果
- Netty网络编程实战1,搭建第一个Netty服务器
- Python爬虫之request模块
- 用python画太阳花原理_用Python绘制诱人的桑基图,一眼看透熬夜和狗粮的秘密
- owncloud php7.3,CentOS 7 x64安装ownCloud9.0.3
- (三)基于cadence 617 的交流仿真、瞬态仿真 以电阻做负载共源级为例