我已經提到了以下鏈接:如何實現使用C++在Silverlight的Windows多個按鈕的代碼嵌入
Silverlight for Windows Embedded
通過參照此鏈接我創建了一個演示應用程序,包括使用微軟創建了兩個按鈕表達式混合2個工具。然後編寫一個引用上述網站的代碼。現在我的按鈕名稱是「瀏覽器按鈕」和「媒體按鈕」。點擊任何一個按鈕,我應該可以啓動相應的應用程序。我能夠做的「瀏覽器按鈕」,但不是「媒體按鈕」,如果我做「媒體按鈕」,那麼我不能做「瀏覽器按鈕」..我的意思是說,我應該如何創建活動兩個按鈕的處理程序。
這是在C + +代碼,我應該修改
class BtnEventHandler
{
public:
HRESULT OnClick(IXRDependencyObject* source,XRMouseButtonEventArgs* args)
{
RETAILMSG(1,(L"Browser event"));
Execute(L"\\Windows\\iesample.exe",L"");
return S_OK;
}
};
// entry point for the application.
INT WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,
LPWSTR lpCmdLine,int nCmdShow)
{
PrintMessage();
int exitCode = -1;
HRESULT hr = S_OK;
if (!XamlRuntimeInitialize())
return -1;
HRESULT retcode;
IXRApplicationPtr app;
if (FAILED(retcode=GetXRApplicationInstance(&app)))
return -1;
if (FAILED(retcode=app->AddResourceModule(hInstance)))
return -1;
XRWindowCreateParams wp;
ZeroMemory(&wp, sizeof(XRWindowCreateParams));
wp.Style = WS_OVERLAPPED;
wp.pTitle = L"Bounce Test";
wp.Left = 0;
wp.Top = 0;
XRXamlSource xamlsrc;
xamlsrc.SetResource(hInstance,TEXT("XAML"),MAKEINTRESOURCE(IDR_XAML1));
IXRVisualHostPtr vhost;
if (FAILED(retcode=app->CreateHostFromXaml(&xamlsrc, &wp, &vhost)))
return -1;
IXRFrameworkElementPtr root;
if (FAILED(retcode=vhost->GetRootElement(&root)))
return -1;
IXRButtonBasePtr btn;
if (FAILED(retcode=root->FindName(TEXT("BrowserButton"), &btn)))
return -1;
IXRDelegate<XRMouseButtonEventArgs>* clickdelegate;
BtnEventHandler handler;
if(FAILED(retcode=CreateDelegate
(&handler,&BtnEventHandler::OnClick,&clickdelegate)))
return -1;
if (FAILED(retcode=btn->AddClickEventHandler(clickdelegate)))
return -1;
UINT exitcode;
if (FAILED(retcode=vhost->StartDialog(&exitcode)))
return -1;
return exitCode;
}
我必須添加事件處理兩個按鈕,這樣在模擬器每當我按一下按鈕中的任何一個,我應該能夠推出各自的應用程序。
在此先感謝
其中,是第二個按鈕的代碼? – Shaihi 2010-05-06 14:02:21