WEB开发网
开发学院手机开发Windows Mobile 开发 Wince上开发Silverlight程序的利器:xaml2cpp 阅读

Wince上开发Silverlight程序的利器:xaml2cpp

 2010-08-23 05:28:00 来源:WEB开发网   
核心提示:#include "T_Page.h"#endif //XAML2CPP_H在这个文件中,你会发现它包含了XAML2CPP从XAML文件中生成类的头文件,Wince上开发Silverlight程序的利器:xaml2cpp(5),这样,如果,用工具生成的也没问题,public: TPage(TCHAR

#include "T_Page.h"

#endif //XAML2CPP_H

在这个文件中,你会发现它包含了XAML2CPP从XAML文件中生成类的头文件。这样,如果,你就在每个源文件中包含它,就能访问工具生成的每个类了。在预处理头文件中包含它的话(通常是stdafx.h),可以节省一些编译的时间。

现在,让我们看看T_Page.h的一些细节:

#ifndef Page_TEMPLATE_HEADER_FILE_H

#define Page_TEMPLATE_HEADER_FILE_H

#include "windows.h"

#include "pwinuser.h"

#include "xamlruntime.h"

#include "xrdelegate.h"

#include "xrptr.h"

#include "XAML2CPP_res.h"

在防止重复包含的#ifdef语句后你会发现你包含了一些用来编译需要编译Silverlight for Windows Embedded程序的头文件。这样会节省一些时间。

下面,我们看到了一个模板定义:

/*class generated by XAML2CPP from .Page.xaml

*/

template < class X>

class TPage : public XAML2CPPBase

{

...

}

我使用模板来连接事件处理程序和你自身的代码,而不是工具生成的代码。

我可能使用一个函数来调用我的类中的纯虚方法,并且让你在继承类中实现你的方法,但是这样可能会对性能有(少许的)影响。

我们有个包含2个参数的构造函数,可以把它们传递到XAML2CPPBase的构造函数。这样的话,你就可以改变窗口的标题和XAML资源id,当然,用工具生成的也没问题。

public: TPage(TCHAR* title=TEXT("Page"),TCHAR* xamlid=IDR_XAML_Page) : XAML2CPPBase(title,xamlid) { }

这样,我们就有了2个智能指针:

protected:

// XAML defined objects (declared as smart pointers) IXRGridPtr LayoutRoot; IXRButtonPtr MyButton;

工具使用你在XAML代码中的x:Name属性来命名它们(或者是你在Expression Blend中设置的属性)

这些智能指针需要和XAML对象绑定,这些代码就在BindObjects方法里:

// binds objects smart pointers to objects created by the runtime

virtual HRESULT BindObjects()

{

HRESULT retcode;

上一页  1 2 3 4 5 6 7  下一页

Tags:Wince 开发 Silverlight

编辑录入:coldstar [复制链接] [打 印]
赞助商链接