vc学习之窗口大小发生变更时使控件自动摆放到合适的位置
来源:互联网 发布:淘宝开充话费有利润 编辑:程序博客网 时间:2024/04/29 08:11
1、不用说,首先隐射OnSize事件,然后在该事件中编写代码
2、这里要注意一个问题,那就是当窗口首次打开的时候,窗口上的空间事实上还没有创建,这个时候如果尝试移动控件位置将会出现错误,最常用的办法是使用GetSafeHwnd来判断控件窗口句柄是否存在,如果不存在就表示还没有创建,而且在窗口打开的时候只要判断一个就可以了
3、使用CRect 来处理控件的大小位置
我的代码处理:
// TODO: Add your message handler code here
CRect rectClient;
CRect rectEdit;
int iButtonWidth,iButtonHeight;
//光判断信息窗口是否已经创建
if (IsWindow(GetDlgItem(IDC_EDIT_INFO)->GetSafeHwnd()))
{
GetClientRect(&rectClient);
//设置 启动按钮
GetDlgItem(IDC_BUTTON_START)->GetClientRect(&rectEdit);
iButtonWidth = rectEdit.Width();
iButtonHeight = rectEdit.Height();
rectEdit.top = rectClient.bottom - 10 - rectEdit.Height();
rectEdit.bottom = rectClient.bottom - 10;
rectEdit.right = 10 + rectEdit.Width();
rectEdit.left = 10;
GetDlgItem(IDC_BUTTON_START)->MoveWindow(rectEdit,TRUE);
//设置 停止按钮
rectEdit.left = rectEdit.right + 10;
rectEdit.right = rectEdit.right + rectEdit.right;
GetDlgItem(IDC_BUTTON_STOP)->MoveWindow(rectEdit,TRUE);
//设置 清除日志
rectEdit.left = rectEdit.right + 10;
rectEdit.right = rectEdit.right + iButtonWidth;
GetDlgItem(IDC_BUTTON_CLEAR_INFO)->MoveWindow(rectEdit,TRUE);
//设置取消 右边重新计算
rectEdit.left = rectClient.right - 10 - iButtonWidth;
rectEdit.right = rectClient.right - 10;
GetDlgItem(IDCANCEL)->MoveWindow(rectEdit,TRUE);
//设置 设置按钮
rectEdit.left = rectClient.right - 10 - iButtonWidth - iButtonWidth - 50;
rectEdit.right = rectEdit.left + iButtonWidth;
GetDlgItem(IDC_BUTTON_GATEWAY_SETUP)->MoveWindow(rectEdit,TRUE);
//设置信息窗口
GetDlgItem(IDC_EDIT_INFO)->GetClientRect(&rectEdit);
rectEdit.left = 10;
rectEdit.right = rectClient.right - 10;
rectEdit.top = 10;
rectEdit.bottom = rectClient.bottom - 10 - iButtonHeight - 10;
GetDlgItem(IDC_EDIT_INFO)->MoveWindow(rectEdit,TRUE);
//设置发送测试信息
GetDlgItem(IDC_BUTTON_SEND_TEST)->GetClientRect(&rectEdit);
iButtonWidth = rectEdit.Width();
iButtonHeight = rectEdit.Height();
rectEdit.left = (rectClient.Width() - iButtonWidth ) / 2;
rectEdit.right = rectEdit.left + iButtonWidth;
rectEdit.bottom = rectClient.bottom - 10;
rectEdit.top = rectEdit.bottom - iButtonHeight;
GetDlgItem(IDC_BUTTON_SEND_TEST)->MoveWindow(rectEdit,TRUE);
}
- vc学习之窗口大小发生变更时使控件自动摆放到合适的位置
- VC++之随父窗口变更整合控件大小
- |非常实用的窗口变化时,控件也发生位置,大小变化 |基于对话框实现通过
- WPF 自动调整控件的大小和位置,当窗体大小发生变化的时候
- VC MFC 获取屏幕大小 程序窗口大小位置 控件大小位置
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类
- 《VC中自动改变控件位置和大小的对话框类》详细使用方法
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类[转]
- VC中自动改变控件位置和大小的对话框类
- VC中自动改变控件位置和大小的对话框类(转)
- UML Quick Reference
- 老外的java开发论坛
- 建筑者模式
- what is Gerber file?
- 0311编译原理上机作业通过情况
- vc学习之窗口大小发生变更时使控件自动摆放到合适的位置
- NET委托:一个C#睡前故事
- 20060429第一天
- Grub配置杂谈
- 给编程初学者的良言警句
- Additional_File_Transfer_Methods
- 测测你的指纹,很准的……(男左女右吧!) (ZT)
- 给编程初学者的良言警句
- 深入理解abstract class和interface