程序界面多模式显示的实现

如果你用过RealPlayer播放器的话,那就一定对它的多模式显示方式不会陌生吧!RealPlayer拥有正常和精简两种显示模式。我们有时也想在自己的程序界面上实现类似的功能,该怎样实现呢?下面拿我用VC6.0做的一个多模式显示程序示例来向大家展示,它是怎样实现类似功能的。如下图所示:(图一) 正常显示模式;(图二)简洁显示模式,无视图;(图三),精简显示模式,仅工具条。


图一


图二


图三

基本构成思想:

实现原理很简单,只要分别获取窗体大小、客户区大小、工具条大小、状态条大小、边框大小以及标题栏大小,既可根据不同显示模式,计算出不同的新窗体的高度(关键在于要重新计算高度,宽度)。如:简洁显示模式(无视图方式下),为宽度不变、高度=窗体高度-客户区高度-状态条高度-边框高度既可。精简显示模式(仅工具条方式下),为宽度不变,先隐藏菜单、高度=标题栏高度+工具条高度+边框高度既可。正常显示模式,我想就不用说了吧!其实就是这么简单,RealPlayer是宽度,高度一起改变并计算,本示例只简单的改变高度,宽度不变,但基本原理是相同的。下面让我们来看看它的代码实现情况吧!

关键代码实现:

我做了一个涵数,本示例程序只需调用此涵数便可实现。其中当nViewType传值为0时,为正常显示模式、传值为1时,为简洁显示模式、传值为2时,为精简显示模式。

时间: 2024-10-22 03:17:12

程序界面多模式显示的实现的相关文章

VC程序界面多模式显示

看过徐景周写过的一篇"程序界面多模式显示的实现",在一个应用程序中使程序拥有多种显示模式,但是这个界面是由SDI的MFC文档视图结构实现,但是使用的代码在MDI的多文档/视图中不能实现,通过MSDN我找到了一些实现 MDI 的多模式实现方法,不敢独享,与大家分享 . 利用SDI和MDI实现这种多模式的显示的应用程序,第一步首先要实现的是可以动态加载和销毁菜单.对于SDI的应用程序,实现是比较简单的,对于MDI的应用程序,实现则是有些麻烦,不过,这些都是可以做到的!呵,呵! 首先,要将S

Android中设置只是程序第一次运行才显示的界面

程序安装后第一次启动: 启动页-->功能介绍页-->系统主页 以后启动: 启动页-->系统 主页 所以在启动页中判断一下就可以了 可以弄一个文件保存一个状态,推荐用SharedPreferences . 1.可以定义一个变量来判断程序是第几次运行,如果是第一次则跳转到引导的Activity,如果不是 第一次则执行系统主页. 判断系统是第一次运行的代码实现如下: 在Activity中添加代码: 使用SharedPreferences来记录程序的使用次数 一下是实现的代码: public v

xml-XML是如何使用的?如何在程序界面上显示类似word里面的文本和图片

问题描述 XML是如何使用的?如何在程序界面上显示类似word里面的文本和图片 老师叫我做一个字典软件,数据用XML存储!如何从程序中去读取XML的内容,那些标签如何过滤识别! 还有TextPanel如何使用!!! 解决方案 xml使用的标签都是自定义的,你获取数据的时候首先要获取到文档对象,再获取头元素,再获取子元素,一直下去带内容

程序启动后,不在最前面显示,任务栏也没有,只有关掉前面窗口,才能看到程序界面,这时任务栏才有。

问题描述 我用了多线程技术用于下载和显示众多的图片.但当我启动程序时,程序在前面闪一下,然后躲到后面,不在最前面显示,任务栏也没有.只有关掉前面窗口,才能看到程序界面,这时任务栏才有.请高手指教. 解决方案 解决方案二:啥叫多线程技术啊?!你用什么,我不知道.

图片-JAVA在当前程序界面上显示出一个对话框,关闭后当前程序界面乱了。

问题描述 JAVA在当前程序界面上显示出一个对话框,关闭后当前程序界面乱了. 这是刚运行后的界面点击确定后成这样了 刚下面的回答看不懂啊 我新手. 圈着的是那个弹出对话框的的代码..放到RigisterFrame注册界面内的. 解决方案 好像没有设定页面刷新吧.错误提示代码以后,加个页面刷新试试. 解决方案二: //a代表教徒,b代表非教徒 public class Test { /** Enter Content. @author zhangjing @date 2015-5-19 @para

Android怎么实现把子线程接收到的实时数据传送给UI界面并用textview显示

问题描述 Android怎么实现把子线程接收到的实时数据传送给UI界面并用textview显示 40C Android蓝牙模块接受到的输入流要显示在程序中另一个Activit中,并且实时更新数据,哪位大神help一下啊 解决方案 你可以百度一下EventBus这个工具,如果有不懂的可以问我. 解决方案二: 在Android中规定只有UI thread可以更新界面,但是我们开发中会经常遇到一些耗时的操作,这些操作可能会很花费时间,最终的结果却要更新到UI上这种情况下,如果我们将这个操作放到UI t

10个有用的网页应用程序界面技术

阅读本文英文版 (英文编辑:SmashingMagazine:翻译.校对:Lucas-Li) 近年来,越来越多的桌面应用程序移植到互联网上面的.没有了平台限制和安装要求且作为一种服务模式的软件看起来很吸引人的.网络应用程序界面设计的核心是网页设计:但是,它的焦点主要集中在功能上面.为了和桌面程序竞争,网络应用程序必须提供简单 ,直观的以及响应快速的用户界面,这样才能减少用户完成事情 的时间和精力. 过去我们没有用应有的方法来关注网络应用程序,现在该是仔细地研究一些有用的技术和设计方案,以便使网络

Delphi中用网页打造程序界面

大家都知道,现在的网页想要多花哨就有多花哨,比起传统Windows应用程序界面单调的菜单加按钮,不知会醒目多少.而且网页素材十分丰富,制作起来也比较简单.如果你想做一个华丽无比,动感十足的程序界面,那Web界面就是你最佳的选择. 第一步:根据需要,用FrontPage或者Dreamweaver做一个界面,界面加上图片,还可加上漂亮的动态Flash.Web界面与程序事件联系在一起的地方就是"超链接",我们以一个简单的播放器程序为例. 比如:要做一个播放器,有"播放"按

qt-QT界面,中文显示乱麻

问题描述 QT界面,中文显示乱麻 本来好好的,但是因为一行中文的最后一个汉字在QT界面显示为"?".看了网上各种方法,就不断尝试.尝试其中一种方法,将源文件的编码方式分别改为ANSI/UTF-8/Unicode,并保存编译.发现界面的汉字全变为乱码了,如图.也不知道如何恢复到之前的状态. 1.请问这是什么原因呢? 2.如何解决? 3.如何恢复到之前的状态呢? 解决方案 源文件的编码格式和编译时用的编码不一致? 解决方案二: QTextCodec::setCodecForCStrings