TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序

你好,

null

我叫Damien Watkins,是Visual C++团队的项目经理。今天,我想我会为我的TechEd Europe课程发布“概述脚本”——这样那些不能参加的人可以在家里自己尝试。我的演讲是关于我们在visualstudio2010中添加的新MFC特性。

在我们开始之前,我想指出Pat Brenner也在做一些关于新MFC功能的Channel 9视频,您可以在这里找到前三个视频(并在将来继续关注更多):

1. Pat Brenner:Visual Studio 2010–MFC和Windows 7 (一个25分钟的访谈,介绍新MFC功能的原理和设计)

2. MFC:实现预览、缩略图和搜索过滤的处理程序 (3分钟“如何”风格视频)

3. MFC:将应用程序与Windows重启管理器集成 (5分钟“如何”风格视频)

创建我的解决方案/应用程序

首先,您可以作为管理员运行VisualStudio2010(VS2010)。  这是注册“文件类型处理程序”所必需的,以便为您的文档类型提供预览、搜索和缩略图支持。或者,可以作为普通用户运行VS2010,并在提升的命令提示符中运行命令来注册文件类型处理程序。

在启动VS2010(并以管理员身份执行)之后,您将创建一个新的MFC应用程序(File->new->Project或CONTROL+SHIFT+n)。在新建项目向导中,您将选择MFC应用程序并输入项目名称。在我下面的示例中,我输入了“VCBlogDemo”,但您可以使用任何您喜欢的名称。但是,如果您使用与我相同的名称,当我引用特定的类、方法等时,将更容易按照下面的说明进行操作。然后单击“确定”。另外,除非我另有说明,否则我总是在任何屏幕上选择默认值。

现在,通过MFC应用程序向导对话框,选择/启用以下功能:

1. 在“概述”页面上,只需单击“下一步”。

2. 在“应用程序类型”页面上,将项目样式设置为Office(我将进一步显示一些功能区功能,因此我需要基于功能区的UI),然后单击“下一步”。

3. 在“复合文档支持”页面上,只需单击“下一步”。

4. 在“文档模板属性”页上:

· 添加文件扩展名,我进入演示ms

· 我还添加了对预览、缩略图和搜索处理程序的支持,在它们被启用后单击各种按钮。

· 检查屏幕截图您有相同的设置:

图片[1]-TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序-yiteyi-C++库

· 然后单击“下一步”。

5. 在“数据库支持”页面上,只需单击“下一步”。

6. 在“用户界面功能”页面上,只需单击“下一步”。

7. 在“高级功能”中,请注意已选中“支持重新启动管理器”,然后单击“下一步”。

8. 在“生成的类”页面上:

· 将CVCBlogDemoView类的基类更改为CEditView。这样做的原因是这个类的默认实现可以用来突出显示预览、搜索和缩略图功能,而不需要开发人员编写任何额外的代码。您的屏幕现在应该如下所示:

图片[2]-TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序-yiteyi-C++库

· 然后单击Finish

一旦向导完成,作为一个快速的健全性检查,我将我的“解决方案配置”更改为“发布”,构建解决方案(F7)并在没有调试的情况下启动应用程序(CONTROL+F5)–我基本上是在看到它运行后关闭它。然后我回到VS2010。

配置重新启动管理器和自动保存

默认情况下,自动保存间隔为5分钟,但我将把间隔设置为15秒,而不是在启动应用程序后等待5分钟来演示此功能。为此,我首先在CVCBlogDemoApp构造函数中找到启用restartmanager支持的命令,然后在它后面立即添加一行。然后,构造函数将有以下两行:

mu dwRestartManagerSupportFlags=AFXu RESTARTMANAGERu支持所有方面;

m_nAutosaveInterval=15000;//在前一行之后添加此行

编辑功能区

然后可以切换到资源视图,转到VCBlogDemo项目并展开VCBlogDemo.rc。然后展开Ribbon资源并双击IDRU Ribbon资源。接下来,我从工具箱中拖出一个面板,把它贴在缎带上。我把面板的标题改为“重启”。然后我把工具箱里的一个按钮拖到重启面板上。然后我把按钮的ID改成了IDu CRASHME,标题改成了CRASHME。

图片[3]-TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序-yiteyi-C++库

返回MFC类向导!

现在您需要为功能区中的“CrashMe”按钮添加事件处理程序。在这一点上,是时候欢迎一个老朋友,类向导回来了。点击CONTROL-SHIFT-X(与原版不同的键绑定),向导出现。很难想象一个更常见的功能比返回的向导-我们真的希望你喜欢使用它!

现在将“Class name”字段改为CVCBlogDemoApp,并在Commands选项卡的search框中输入IDu CRASHME。类向导屏幕如下所示:

图片[4]-TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序-yiteyi-C++库

接下来,选择命令并单击“添加处理程序”,然后选择更新命令并单击“添加处理程序”。  命令处理程序将使我们的应用程序崩溃,因此我们可以看到restartmanager功能正在工作。UPDATE_命令处理程序将禁用“CrashMe”按钮,直到我们的应用程序已运行超过1分钟,这样Windows Restart Manger机器才会启用(因此自动保存超时至少已过期一次。)现在使用“Edit Code”按钮添加以下代码(当然,您可以添加任何逻辑来启用/禁用按钮并终止应用程序–下面的代码是我能想到的最简单和最受约束的代码–但是它不是一个良好编码实践的示例):

图片[5]-TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序-yiteyi-C++库

演示我们的应用程序

因此,现在重建解决方案并启动应用程序(请记住,它应该是为“Release”而构建的)。当您启动应用程序而不进行调试(CONTROL+F5)时,您将注意到“CrashMe”按钮最初是禁用的。接下来我将再打开两个文档(键入CONTROL-N两次就可以了)。

1. 在“文档一”中,我将键入“此文档已保存”,然后单击“保存”图标并将文档保存在“文档”文件夹中。

2. 在文档2中,我将键入“This document is not saved”(我不会保存它)。

3. 在文件三,我会键入“这句话是保存”,并点击保存图标,并保存在文件文件夹的文件。下一步我将在第二行键入“This sense is not save”(我不会保存它)。

Windows 7任务栏

为了让自动保存功能能够工作,此时您可以将鼠标悬停在新的Windows7任务栏中的应用程序图标上。注意,每个文档都有一个单独的选项卡(尽管在本例中,写入的内容非常小),并且您可以看到文档的实时视图—例如,注意活动文档中闪烁的光标(无论哪一个恰好是)

图片[6]-TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序-yiteyi-C++库

演示重新启动管理器

现在,我们可以通过单击启用的“CrashMe”按钮使应用程序崩溃。在花了几秒钟重新启动之后,您将看到一个新的CTaskDialog的好例子,以及自动恢复工作的选项。

图片[7]-TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序-yiteyi-C++库

我通过单击“恢复自动保存的文档”选项来恢复所有内容。  现在,我将鼠标悬停在任务栏中的应用程序图标上,当出现文档预览时,单击红色的X开始关闭文档。您会注意到一个已经保存的文档是如何被关闭的,一个已经保存的文档  但随后又被更新了遗嘱  如果启用“保存”对话框,则从未保存过的文档将启用“另存为”对话框。

浏览器交互

最后,我在documents文件夹中启动Explorer,在Search字段中键入“saved”,然后选择一个演示ms文件,这样我们就可以看到图标、预览和搜索功能。

图片[8]-TechEd欧洲演示会议–Windows 7上的面部提升MFC应用程序-yiteyi-C++库

支持高DPI

对于那些有几分钟时间的人,在这个阶段你可以改变你的屏幕分辨率,或者重新启动或者注销(取决于你的操作系统要求),看看MFC是如何增加对高DPI显示的支持的。

摘要

如您所见,使用MFC的新Windows功能非常简单。再加上类向导的返回和功能区编辑器的添加,我们希望MFC开发人员会对即将发布的visualstudio2010感到兴奋。

您可能注意到的另一点是,Ribbon设计器与BCGSoft设计器非常相似。同样,与vs2008sp1中的MFC扩展(又称MFC功能包)一样,我们在一些新MFC功能的实现方面得到了BCGSoft的帮助。这就是我的欧洲技术讲座的概述。

谢谢,

达米安

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享