XP风格复活节彩蛋的实现

如果您用过微软Office系列产品的话,一定会知道它们中很多在"关于"对话框中都隐藏了一些小功能,只有当用户点击某些特殊的键盘或鼠标按键时,这些功能才会显示出来(就象复活节彩蛋似的变出来)。您象知道类似的功能是怎么实现的么?下面,我做了个示例程序,可以告诉您它们实现的基本原理(示例中采用了整套XP风格化的界面设计)。如下图:其中图一为XP风格界面,图二为类似复活节彩蛋的实现界面。

图一

图二

基本构成思想:

实现原理很简单,初始时将隐藏的部分不显示出来(既限制对话框的高度,默认高度=总高度 -- 隐藏部分高度),再设定特殊的键盘或鼠标按鍵来激活它既可。本示例程序采用二种方式,键盘热键和鼠标热键,其中键盘热键为"关于"对话框中同时按下Ctrl+Alt+F3键可激活隐藏信息,鼠标热键则为,在"关于"对话框中同时按下Ctrl键,在Logo动态图像中双击鼠标右键既可激活隐藏信息。下面让我们来看看它的具体实现情况吧!

关键代码实现:

1、 默认将隐藏部分不显示出来

#define WM_SHOWHOTKEY WM_USER + 101 //自定义系统热键消息
BOOL CAboutDlg::OnInitDialog()
{
  //"关于"对话框中对话框可收缩效果
  CRect Rect1,Rect2;     //对话框收缩时大小

  GetDlgItem(IDC_DYCREDITS)->GetWindowRect(Rect1);
  GetDlgItem(IDC_COPYRIGHT)->GetWindowRect(Rect2);
  m_nReducedHeight = Rect1.Height()+(Rect1.top -Rect2.bottom)/2; //收缩后窗体高度
  dlgRect.bottom -= (Rect1.Height()+(Rect1.top -Rect2.bottom)/2);
  MoveWindow(&dlgRect);  //如果要显示对话框起始动态效果的话,不能使用该句
  m_bVertical=false;      //默认收缩对话框

  //注册系统热键,用来显示隐藏信息<Ctrl+Alt+F3键>
  RegisterHotKey(GetSafeHwnd(),WM_SHOWHOTKEY,MOD_ALT|MOD_CONTROL,VK_F3);

  return TRUE;
}

时间: 2024-11-17 12:22:01

XP风格复活节彩蛋的实现的相关文章

C++Builder中的复活节彩蛋

许多软件中都带有复活节彩蛋,也是程序员们辛苦工作时的一个小小乐趣吧.C++Builder和Delphi当然也不会例外.当您打开它们的about对话框后再按下以下的组合键: 1.小组人员名单 ALT+TEAM 2.R&D开发人员名单 ALT+DEVELOPERS 3.质量保证人员名单 ALT+QUALITY 您是不是也想在自己的软件中加上自己的复活节彩蛋呢?

百度搜索的复活节彩蛋

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 自央视新闻三十分 "炮轰" 百度开始,媒体们似乎都将枪口对准了搜索引擎的"竞价排名"推广模式,仿佛但凡搜索结果中出现商业信息,就会被视为不够公正性.影响搜索结果. 说实话,历数目前市面上的搜索引擎,无论是百度,还是Google.雅虎.网易的有道乃至腾讯的SoSo,哪个没有"赞助商链接"

PhotoShop如何查看彩蛋?

  在我们常用的软件当中隐藏了一些小东东,这些小东东我们称之为复活节彩蛋(Easter Eggs).复活节彩蛋的内容包含得很广,从单纯地列出开发人员名单到3D影音游戏都有.我们常用的软件如Windows.Word和Excel以及我们用来上网的浏览器IE中都有这样的彩蛋. 在软件的"帮助"或"关于"中,一般都找不到这个软件开发组的名单,如项目经理.程序员.测试员等.难道开发者们想隐姓埋名吗?当然不是!这是由于许多软件公司的规定就是如此.不过开发者们很聪明,他们以另外的

“黑暗之魂”亡灵彩蛋现身《无主之地2》

<无主之地>和<恶魔之魂>都是2009年上市的黑马,不管是在销量上还是名声上.所以相对应的,三年之后我们在<无主之地2>Caustic Cavernshttp://www.aliyun.com/zixun/aggregation/507.html">地图中了看到有向<黑暗之魂>致敬的复活节彩蛋. 无主之地2 这个彩蛋实际上带有一个视觉效果:如下视频中所示,我们会看到一个灵魂手握利剑坐在岩石上的场景.但同时也要注意旁边不断发出贱笑的NPC的名字

PHP彩蛋信息介绍和阻止泄漏的方法(隐藏功能)_php技巧

Easter Eggs(复活节彩蛋)外行人估计不了解这是神木玩意,彩蛋的网络解释是:用于电脑.电子游戏.电脑游戏.影碟或其他互动多媒体之中的隐藏功能或信息.PHP包含一个安全漏洞,可能导致未经授权的信息披露,如果你正在运行PHP,就有可能会被人发现PHP版本和其他敏感信息.我觉得有必要解决这个彩蛋问题来确保你网站的安全性. PHP彩蛋是如何运作的 只要运行PHP的服务器上,访问任何网页都可以在域名后添加以下字符串来查看信息: 复制代码 代码如下: ?=PHPB8B5F2A0-3C92-11d3-

你知道 Python 这五个有趣的彩蛋吗?

当一门编程语言是开源的时候,往往会有产生一些搞笑和有趣的东西.通常,这意味着社区的贡献者会为该语言添加一些有趣和特别的彩蛋以及隐藏的特性(当然前提是不会增加在生产环境中使用的风险). Python 就是一个很好的例子.作为一门开源的语言,它的社区为其贡献了一些十分幽默的东西. 旁注:如果您想观察彩蛋,请注意,它们只能在第一次工作.如果希望重新运行它们,需要重新启动 Python shell. 0. Hello World 程序员们都熟悉 Hello World 的概念.在大多数情况下,它指的是使

【100亿次的挑战】之拜年红包和春晚彩蛋

  讲师:siyu   今天在这里和大家分享一下微信春节红包项目中几个可能"出乎意料"的几个产品:我称呼它们为"春节的彩蛋".   拜年红包从哪来?  2月17日,也就是除夕前一天,大概中午时候,大家会发现微信聊天界面附件栏中的红包icon变红了,同时单聊点击红包之后会出现两个选项:红包和拜年红包--拜年红包就这样悄悄上线了.这是我们埋在6.1客户端里的新产品.它从哪来?   在我加入广研的时候,2年前,那时候我对产品设计还没有什么经验,我被训练的第一条产品世界观就

Qzone龙年春节彩蛋“会喷火的龙”制作揭秘

一.背景 今年春节Qzone做的春节活动是让用户许三个新年愿望(发表空间说说的方式),然后自己去拉好友来"赞"自己发的愿望,当每一个愿望积累"赞"的次数超过5次的时候就可以点亮龙身体的三分之一,当3个愿望都积累到的时候就可以全部点亮一条完整的龙, 最终在Qzone个人中心的Feeds里面可以带上这条龙: 当时我第一眼看见这条龙的设计稿脑中就浮现各种想法:"如果这条龙可以动起来将会是什么样子?如果它还会喷火?如果它可以把前面的名字烧红?如果它可以把黄钻的条点

Photoshop制作精致的XP风格任务栏

在设计多媒体光盘.多媒体课件的用户界面时,许多设计者喜欢制作仿真Windows任务栏和开始菜单.因为平常大家接触最多的界面恰恰就是Windows的桌面环境,所以这种风格的用户界面为许多用户所喜爱. 设计这类界面的关键是制作出逼真的任务栏和开始按钮,今天我们来介绍一下如何使用Photoshop制作这种逼真的任务栏和开始按钮. 本文以Photoshop CS中文版为例,其他版本类似. 文章末尾提供.psd文件供大家下载参考. 完成效果: 绘制过程: 1.运行Photoshop CS中文版,新建一个大