控件的移动方法
来源:互联网 发布:qq三国吃白菜数据 编辑:程序博客网 时间:2024/05/21 13:34
控件位置的调整涉及的函数有:GetWindowRect()、ScreenToClient()、GetClientRect()、MoveWindow()或SetWindowPos(),功能意义如下:
1.用GetWindowRect()获得窗口在屏幕上的矩形坐标,调整控件位置时必须首先获得该屏幕坐标;GetWindowRect是获取窗口句柄对应的窗口的屏幕坐标.
CRect rectL;
GetDlgItem(IDC_LEFT)->GetWindowRect(&rectL);//获取控件相对于屏幕的位置(即获得空间的绝对坐标)
2.获得相对于主窗体的坐标ScreenToClient()
ScreenToClient():转换屏幕坐标到客户区坐标,如果为子窗口,转换后坐标为相对于父窗口的坐标,若为独立窗口,转换后客户区左上坐标为(0,0);调整子窗口时这一步也是必须的;
ScreenToClient(&rect);//获得相对于主窗体的坐标
3.用CWnd类的函数MoveWindow()或SetWindowPos()可以改变控件的大小和位置。
void MoveWindow(int x,int y,int nWidth,int nHeight);
void MoveWindow(LPCRECT lpRect);
第一种用法需给出控件新的坐标和宽度、高度;
第二种用法给出存放位置的CRect对象;
例:
CWnd *pWnd;
pWnd = GetDlgItem( IDC_EDIT1 ); //获取控件指针,IDC_EDIT1为控件ID号
pWnd->MoveWindow( CRect(0,0,100,100) ); //在窗口左上角显示一个宽100、高100的编辑控件
SetWindowPos()函数使用更灵活,多用于只修改控件位置而大小不变或只修改大小而位置不变的情况:
BOOL SetWindowPos(const CWnd* pWndInsertAfter,int x,int y,int cx,int cy,UINT nFlags);
第一个参数我不会用,一般设为NULL;
x、y控件位置;cx、cy控件宽度和高度;
nFlags常用取值:
SWP_NOZORDER:忽略第一个参数;
SWP_NOMOVE:忽略x、y,维持位置不变;
SWP_NOSIZE:忽略cx、cy,维持大小不变;
例:
CWnd *pWnd;
pWnd = GetDlgItem( IDC_BUTTON1 ); //获取控件指针,IDC_BUTTON1为控件ID号
pWnd->SetWindowPos( NULL,50,80,0,0,SWP_NOZORDER | SWP_NOSIZE ); //把按钮移到窗口的(50,80)处
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER | SWP_NOMOVE ); //把编辑控件的大小设为(100,80),位置不变
pWnd = GetDlgItem( IDC_EDIT1 );
pWnd->SetWindowPos( NULL,0,0,100,80,SWP_NOZORDER ); //编辑控件的大小和位置都改变
以上方法也适用于各种窗口。
- 控件的移动方法
- Android 自定义控件的 拖拽、移动 实现 方法
- slider控件移动滑块,动态的显示tooltip方法!
- slider控件移动滑块,动态的显示tooltip方法!
- 自定义组件——控件平滑移动的方法
- 几种常用移动控件的方法区分
- 控件的移动!
- android 控件的移动
- libgdx 控件的移动
- vc中 控件的移动
- 控件移动类的实现
- 一个左右移动的控件
- 实现控件的移动功能
- Android控件跟随手指移动方法补充及在RelativeLayout移动控件控件还原位置问题
- 总结自定义控件时用到的移动View对象的方法
- 通过layout()方法实现控件的移动以及MotionEvent.getX()和MotionEvent.getRowX()的区别
- 移动侦测的方法
- 移动UIView的方法
- ActiveMQ持久化方式
- 使用Gradle管理java项目
- Flask+MySQL部署到SAE
- MAC快捷键总结
- 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
- 控件的移动方法
- 递归求数组的最大值,主要说下递归执行的过程
- 回文串算法Java实现
- [20160302] QQ数据线的思考 / 无私奉献的"引导者"
- PAT 1107. Social Clusters (30)
- 委托加载图片
- 深度学习资料
- 博弈
- W6s数据传输格式