界面布局动态调整
2010-12-24 08:24
295 查看
转载[http://blog.csdn.net/xianglitian/archive/2010/06/12/5667015.aspx]
早在2007年我就写过一篇博客叫可适配控件对话框,那个时候一方面是工作需要研究了这个问题,另一方面是发现论坛里有很多人问相关的问题,于是就把自己的研究成果做了一个小例子发了上来,还写了那篇博客。
说来惭愧,首先那时那个例子其实是我照着网上一个例子改的,而且基本框架也差不多,我简单加了些自己的东西改了改名就发出来了,唉......如今原作者以无法考正了,在此对其表示感谢吧。然后那个例子其实不是很好用,当时并没有发现什么问题,但是随着工作中使用的增多我发现了不少缺陷,也在工作中不断的改进,终于做出了一个自己用的很舒服的版本。如今三年过去了,再看CSDN界面版仍然有很多网友问及此类问题,VisualEleven力推codeproject上的easysize。easysize当初我也简单看过,不过那时我并没看懂,估计我现在也看不懂,呵呵。不过我觉得我用的这个方法也蛮好的,所以决定再写一篇博客把现在的方法介绍一下,同时整理了一个例子供大家研究。
处理过这个问题的朋友们就应该知道,所谓的控件动态调整就是在主窗口的OnSize消息里处理一下,根据窗口的大小重新布置控件的位置。而解决这个问题的关键在于如何管理界面中的控件信息,从而可以比较方便的实现对控件的重新布局。我的处理方式是这样的,我定义了一个结构tagCONTROL,其内容如下
这样一来,只要我们设计好控制信息,我们设计的界面即使被用户缩放和拖拽也可以体现出良好的布局。这个方案是我这些年来一直在项目中采用的,我不敢说它是完美的,但是却是能够满足一般的需求。如果大家在对这个方案的研究和使用中发现什么问题或是可以改进的地方还希望可以告诉我,我会加以改进再和朋友们分享。
早在2007年我就写过一篇博客叫可适配控件对话框,那个时候一方面是工作需要研究了这个问题,另一方面是发现论坛里有很多人问相关的问题,于是就把自己的研究成果做了一个小例子发了上来,还写了那篇博客。
说来惭愧,首先那时那个例子其实是我照着网上一个例子改的,而且基本框架也差不多,我简单加了些自己的东西改了改名就发出来了,唉......如今原作者以无法考正了,在此对其表示感谢吧。然后那个例子其实不是很好用,当时并没有发现什么问题,但是随着工作中使用的增多我发现了不少缺陷,也在工作中不断的改进,终于做出了一个自己用的很舒服的版本。如今三年过去了,再看CSDN界面版仍然有很多网友问及此类问题,VisualEleven力推codeproject上的easysize。easysize当初我也简单看过,不过那时我并没看懂,估计我现在也看不懂,呵呵。不过我觉得我用的这个方法也蛮好的,所以决定再写一篇博客把现在的方法介绍一下,同时整理了一个例子供大家研究。
处理过这个问题的朋友们就应该知道,所谓的控件动态调整就是在主窗口的OnSize消息里处理一下,根据窗口的大小重新布置控件的位置。而解决这个问题的关键在于如何管理界面中的控件信息,从而可以比较方便的实现对控件的重新布局。我的处理方式是这样的,我定义了一个结构tagCONTROL,其内容如下
void CAutoFitDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI)void CAutoFitDlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI) { //设置窗口的最小大小 lpMMI->ptMinTrackSize = m_ptMinTrackSize; CDialog::OnGetMinMaxInfo(lpMMI); }
这样一来,只要我们设计好控制信息,我们设计的界面即使被用户缩放和拖拽也可以体现出良好的布局。这个方案是我这些年来一直在项目中采用的,我不敢说它是完美的,但是却是能够满足一般的需求。如果大家在对这个方案的研究和使用中发现什么问题或是可以改进的地方还希望可以告诉我,我会加以改进再和朋友们分享。
相关文章推荐
- 界面布局动态调整
- 界面布局动态调整
- 界面布局动态调整
- 界面布局动态调整
- 软件界面布局调整推荐
- 关于MFC界面动态调整总结
- C/C++自动调整界面布局的对话框
- ipad流水布局及其旋转界面view间隔布局调整
- Android开发笔记----界面布局及在布局上动态地增加删除子元素
- 一种使用Xml对Android界面进行动态布局的方法
- 【转】用Fragment创建动态的界面布局(附Android示例代码) - 小吉吉
- Android开发动态加载布局(异常状态的展示界面)
- 【译】用Fragment创建动态的界面布局(附Android示例代码)
- Android 虚拟按键适配动态调整布局
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- ipad/iphone ,adjust your layout when orientation will be changing , 旋转屏幕时调整界面布局
- WPF实现界面动态布局
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- Android Launcher分析和修改2——Icon修改、界面布局调整、壁纸设置
- Android基础:代码中实现界面动态布局