轻松实现类MSDN 2002界面(2)

前段时间在VC知识库发表了《轻松实现类MSDN2002界面》,仅仅实现了标签页的拖放、停靠、浮动等功能,而上面的图钉按钮也只是一个假的^_^。通过参考codeproject.com/docking/pinnabledock.asp的代码对程序进行了加强。现在已经可以实现自动隐藏了!!!效果图如下。(比较匆忙,程序还有很多不令人满意的地方,有待改进。上周刚接到新任务,不能继续做了,只好请大家来完善了,希望你把修改后的代码发我一份,谢谢)

图一

下面,我将一步步介绍怎样使用 DockPage、AutoHideBar。

一、通过AppWizard使用默认选项生成一个SDI界面工程。把src目录拷贝到你的工程文件夹下。

在菜单Project->Add to project->Files将六个文件加入工程中。在stdafx.h文件中加上:

#define WM_AUTOHIDE_ON    WM_USER+1
#include ".\src\sizecbar.h"
#include ".\src\AutoHideBar.h"

二、修改 MainFrame 的继承关系。

头文件修改为:class CMainFrame : public CautoHideFrame

cpp文件修改:IMPLEMENT_DYNCREATE(CMainFrame, CAutoHideFrame)

BEGIN_MESSAGE_MAP(CMainFrame, CAutoHideFrame)

三、 声明DockPageBar:

CDockPageBar    m_wndDockPageBar

在OnCreate创建DockPageBar:

if (!m_wndDockPageBar.Create(_T("DockPageBar"), this, CSize(230,260),TRUE,123))
  {
    TRACE0("Failed to create DockPageBar.\n");
    return -1;
  }
  m_wndDockPageBar.SetBarStyle(m_wndDockPageBar.GetBarStyle() |
    CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
  m_wndDockPageBar.EnableDocking (CBRS_ALIGN_ANY);

允许Frame停靠:

EnableDocking(CBRS_ALIGN_ANY);

将DockPageBar停靠到左边:

DockControlBar(&m_wndDockPageBar, AFX_IDW_DOCKBAR_LEFT);

四、好了,停靠 Bar 已经创建好了,并且具有了自动隐藏功能。下面你就可以忘停靠条里添加标签页了!!

if (!m_wndEdit.Create(WS_CHILD|WS_VISIBLE|
      ES_MULTILINE|ES_WANTRETURN|ES_AUTOVSCROLL,
    CRect(0,0,0,0), this, 123))
    return -1;
  m_wndDockPageBar.AddPage(&m_wndEdit,"Edit",IDI_INDEX);

OK,编译执行就可以了!!就这么简单。至于实现原理就不在这里讲了,有幸趣的话可以看源码,不过源码有点乱,现在实在是没有时间整理了!!自动隐藏功能的实现代码没有加注释,抱歉!!!

时间: 2024-10-11 22:00:06

轻松实现类MSDN 2002界面(2)的相关文章

轻松实现类MSDN 2002界面

一直想实现类似 MSDN 2002 式样的界面,到 codeproject 也没找到(呵呵,可能俺比较笨.只是发现一个需要付费的(Xtreme Toolkit),不知道他是否提供源码). 咱笨人有笨办法,自己实现一个!!! 下面是俺自己实现的效果图. 图一  功能 在<轻松实现类VC界面>基础上实现标签页的任意拖放: 1. 标签页位置的调整. 2. 把一个标签页拖到 ControlBar 外. 3. 把一个标签页拖出并停靠. 4. 把一个标签页拖到另一个 ControlBar 内. 5. 把一

VC自动隐藏停泊窗体实现-轻松实现类MSDN2002界面(二)(续)

自动隐藏停泊窗体在商业的MFC图形库中(如Xtreme)已支持得很好,但他们大多都重写了MFC相应的支持代码 像Cristi Posea的CSizingControlBar实现VC6界面那样,重用大部分MFC Dock 框架类而实现Vc .Net界面的免费库很少见(偶没发现:) 本实现,准确地说是在Cuick 的<轻松实现类MSDN2002界面(二)>基础上的增强版. 其主要更新为: Bugfixs: 1.增加定时器 TID_AUTO_HIDE_DELAY 避免出现两个自动隐藏窗口(AHFlo

在类VC的界面实现中加入目录树

前言 本文是在<轻松类VC界面>的基础上写的,初次写文章,表义不清之处,请谅解!如果书归正传,开始--. 程序运行结果如下图:左边.底下有两个可浮动.可变大小的控制窗口 ,在左边一个Tab页中,可以显示系统目录. 一.实现原理 图中两个窗口的实现类是从CControlBar派生出来的,王骏先生将CSizingControlBar类修改了一下并命名为CCoolBar,我所要做的是应用该类.左边窗口中的目录树,是从类CdirTreeCtrl派生出来的,我们只要引用就可以,详见代码. 二.应用示例

技术支持诈骗手段翻新:借勒索软件类锁屏界面恐吓用户

我们已经报道过多起"技术支持诈骗"的案例,通常情况下,别有用心的一方会随机地给人们打电话,假装其来自微软等大企业,进而以"用户的计算机上检测到了病毒"之类的借口一步步下套行骗.如果用户真相信他们可以帮忙搞定蓝屏死机什么的问题,那实在太天真了.因为真正等待着他们的,会是各种哄骗付费.但却根本无需购买的服务. 或许是老式的行骗手段已经收效甚微,"技术支持"诈骗者们也在不断地更新他们的手法.除了忽悠可以改善受害者的游戏体验之外,他们甚至学去了"

让工作更轻松——EA类图与代码同步

    进入主题之前,先说一下ea工具:EA--Enterprise Architect,是一种建模工具,想了解请点解 这里      随着能力的提升,现在做的项目,都要求先画类图,再敲代码,但是每次画图后,在敲代码起初,还跟图对应着呢,到后来,发现图中有不合适的地方,然后就把图改一下,再敲代码,但是图中错误太多的话,就懒得再去改图了,直接修改代码了.这样时间一长,图就算废弃了.开发完了,态度好一点的人,会用代码去生成一下图去交差,有的干脆不管了,结果给同一项目组其他同事的工作造成了很大的影响.

奇怪,page_Load中引入一个验证码的类文件,界面只显示验证码,却看不到登陆界面,如用户名和密码控件,帮帮忙!谢谢

问题描述 这是生成验证码的类(部分),运行可以得到验证码publicclassValidatenumimage{privatestringGenerateCheckCode(){intnumber;charcode;stringcheckCode=String.Empty;System.Randomrandom=newRandom();for(inti=0;i<5;i++){number=random.Next();if(number%2==0)code=(char)('0'+(char)(nu

曲面外形 + 类 iOS 7 界面,苹果电视会长成这个样子吗?

class="post_content" itemprop="articleBody"> 有的概念设计师擅长硬件创作,有的则是擅长平面创作,当两者将自己的作品进行结合之后,就会衍生出一些炫目的概念设计,比如我们今天看到的这个新概念苹果智能电视.相信有些童鞋看到这款电视会产生熟悉的感觉,因为无论是它的外形还是界面,我们事实上都已经见过了-- 这次我们看的苹果智能电视概念新作品由知名设计师 Andrew Ambrosino 和 Martin Hajek 共同打造,

键盘也能轻松玩转Win8新界面

  "Windows键"也叫"Winkey"或"Win键",它的位置一般在计算机键盘左下角的Ctrl和Alt键之间,某些全尺寸键盘的主键盘区的右下角也有一个,键帽上的图案是Microsoft Windows的视窗标志图案. 图示:"Windows键"在计算机键盘上的位置 一.最重要 开始屏幕与超级按钮菜单 Windows键:切换到开始屏幕 在任何状态下,按下键盘上的Windows键,都可以快速切换到Win8特有的开始屏幕.再次

J2ME,可以用哪些类实现以下界面?

问题描述 [img=http://hiphotos.baidu.com/zhidao/abpic/item/5d6034a8f93972e7ca130c59.jpg?t=1302059330614][/img] 解决方案 解决方案二:图看不到解决方案三:没啥特殊要求的话用List有特殊要求的话用Canvas