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

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

 2010-08-23 05:28:00 来源:WEB开发网   
核心提示:if (FAILED(retcode=root->FindName(L"LayoutRoot",&LayoutRoot)))return retcode;if (FAILED(retcode=root->FindName(L"MyButton",&MyButton))

if (FAILED(retcode=root->FindName(L"LayoutRoot",&LayoutRoot)))

return retcode;

if (FAILED(retcode=root->FindName(L"MyButton",&MyButton)))

return retcode;

return S_OK;

}

这个函数里的代码看起来很无趣...但是你不需要写它,XAML2CPP已经为你生成好了,这样的话,就能防止输入错误的名称,或者在剪切和粘贴中遗忘某些东西哦了(我知道你使用剪切和复制来写这些代码,就像我一样!)

现在我们需要绑定事件处理函数到这些对象,这些是在BindEventHandlers里做的:

// binds event handlers to template class member functions

// should be called after BindObjects

virtual HRESULT BindEventHandlers()

{

HRESULT retcode;

//declare your own event handler as

// HRESULT OnClick(IXRDependencyObject* source,XRMouseButtonEventArgs* args)

IXRDelegate< XRMouseButtonEventArgs>* OnClickDelegate;

retcode=CreateDelegate< X,XRMouseButtonEventArgs>((X*)this,&X::OnClick,&OnClickDelegate);

if (FAILED(retcode))

return retcode;

if (FAILED(retcode=MyButton->AddClickEventHandler(OnClickDelegate)))

return retcode;

OnClickDelegate->Release();

return S_OK;

}

正如你看到的一样,创建了一个代理(delegate),使用类中的OnClick方法传递到模板,那就是你自身的类了。你需要在你的类中声明OnClick方法,如果缺少的话,你会在CreateDelegate中看到一个编译错误。就在那一行上面,你会发现方法(OnClick)的原型,你可以用来剪切和粘贴到你的代码中。

现在我们知道了XAML2CPP是怎样运行的,会生成什么代码,我们还需知道如何把它整合到我们自身的代码中去。

你可以使用Platform Builder来创建一个空的Win32工程。

然后重复我们在Silverlight for Windows Embedded指南第一课所作的: http://geekswithblogs.net/WindowsEmbeddedCookbook/archive/2009/10/01/silverlight-for-embedded-tutorial.aspx

然后把你的XAML文件放到子工程中,再使用XAML2CPP运行它。你会在子工程中看到我们上面描述的文件。

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

Tags:Wince 开发 Silverlight

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