silverlight   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了WINCE6.0下用SilverLight技术的基本控件使用大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

//############################################################################################################### //Main.cpp //Designed by xqh //Date:2009--12--28 //#include <pwinuser.h> #include <Xam

//###############################################################################################################
//Main.cpp
//Designed by xqh
//Date:2009--12--28

//#include <pwinuser.h>
#include <XamlRuntime.h>
#include <XRDelegate.h>
#include <XRPtr.h>
#include <Ehm.h>


//=================================================================================================================
IXRApplication* pApplication = NULL;
IXRVisualHost* pVisualHost = NULL;


class BtnEventHandler //单独响应按钮操作
{

public:

//Button使用示范

    HRESULT Btn_OnClick(IXRDependencyObject* source,XRMouseButtonEventArgs* args)   
 {     

#if  1

 // messageBox(NULL,TEXT("Btn_OnClick!"),TEXT("Silverlight for Windows Embedded test"),MB_OK);  

        RETAILMSG(1,(TEXT("++++BtnEventHandler( )----Btn_OnClick!/r/n")));

#else

      UINT  exitCode=0;

     // pApplication->StopProcessing(exitCodE);

      pVisualHost->EndDialog(0);

#endif

     return S_OK;   
 }


//ComboBox使用示范

HRESULT ComboBox_SelChange(IXRDependencyObject* source,XRSELEctionChangedEventArgs* args)   
 {     

 //messageBox(NULL,TEXT("ComboBox_SelChange!"),MB_OK);  


      RETAILMSG(1,(TEXT("++++BtnEventHandler( )----ComboBox_SelChange!/r/n")));

     return S_OK;   
 }

 

//ListBox使用示范
HRESULT ListBox_SelChange(IXRDependencyObject* source,TEXT("ListBox_SelChange!"),MB_OK);  

      RETAILMSG(1,(TEXT("++++BtnEventHandler( )----ListBox_SelChange!/r/n")));


     return S_OK;   
 }
 
//checkBox使用示范

 HRESULT checkBox_check(IXRDependencyObject* source,XRRoutedEventArgs* args)   
 {     

 messageBox(NULL,TEXT("checkBox_check!"),MB_OK);  

     return S_OK;   
 }


//RadioButton使用示范

HRESULT RadioBtn_check(IXRDependencyObject* source,TEXT("RadioBtn_check!"),MB_OK);  

     return S_OK;   
 }


//ProgressBar使用示范

/*
HRESULT PrgBar_Change(IXRDependencyObject* source,XRValueChangedEventArgs* args)   
 {     

 messageBox(NULL,TEXT("PrgBar_Change!"),MB_OK);  

     return S_OK;   
 }
*/


//TextBox使用示范

HRESULT TextBox_SelChange(IXRDependencyObject* source,TEXT("TextBox_SelChange!"),(TEXT("++++BtnEventHandler( )----TextBox_SelChange!/r/n")));


     return S_OK;   
 }

 

HRESULT TextBox_TextChange(IXRDependencyObject* source,XRTextChangedEventArgs* args)   
 {     

 //messageBox(NULL,TEXT("TextBox_TextChange!"),(TEXT("++++BtnEventHandler( )----TextBox_TextChange!/r/n")));


     return S_OK;   
 }


//Slider使用示范
/*
HRESULT Slider_Change(IXRDependencyObject* source,TEXT("Slider_Change!"),MB_OK);  

     return S_OK;   
 }
*/


//ScrollBar使用示范
/*
HRESULT ScrollBarVr_Change(IXRDependencyObject* source,TEXT("ScrollBarVr_Change!"),MB_OK);  

     return S_OK;   
 }
*/

/*
HRESULT ScrollBarHr_Change(IXRDependencyObject* source,TEXT("ScrollBarHr_Change!"),MB_OK);  

     return S_OK;   
 }
*/


//passwordBox使用示范

HRESULT password_Change(IXRDependencyObject* source,XRRoutedEventArgs* args)   
 {     

 //messageBox(NULL,TEXT("password_Change!"),(TEXT("++++BtnEventHandler( )----password_Change!/r/n")));


     return S_OK;   
 }


};

 

//###################################################################################################################
INT WINAPI WinMain(
    HINSTANCE hInstance,
    HINSTANCE hPrevInstance,
    LPWSTR lpCmdLine,
    int nCmdShow
    )
{

   int    exitCode = -1;
   BOOL   bRet;
   HRESULT hr;
  
   bRet= XamlRuntimeInitialize();

   GetXRApplicationInstance(&pApplication);

   XRXamlsource sourceXaml;

   sourceXaml.SetFile(L"//Storage Card//XAMLPERF//Page_Control.xaml");

 

 

//###############################################################

XRWindowCreateParams WindowParameters;
ZeroMemory(&WindowParameters,sizeof(WindowParameters));
WindowParameters.Style       = WS_POPUP;
WindowParameters.ptitle      = L"title Name";
WindowParameters.Left        = 0;
WindowParameters.Top         = 0;

//################################################################

//IXRVisualHost* pVisualHost = NULL;


pApplication->CreateHostFromXaml(&sourceXaml,&WindowParameters,&pVisualHost);


if(!pVisualHost)
 rETAILMSG(1,(TEXT("++++the pVisualHost is NULL!/r/n")));

//################################################################

//找到根目录
IXRFrameworkElementPtr root;
if (Failed(hr=pVisualHost->GetRootElement(&root)))      
return -1;


//--------------------------------------------------------------
IXRStylusInfoPtr    StylusInfo;


pApplication->CreateObject(IID_IXRStylusInfo,&StylusInfo);

bool  bStylusStatus;

StylusInfo->GetIsInverted(&bStylusStatus);

 

if(bStylusStatus)
   RETAILMSG(1,(TEXT("++++the bStylusStatus is true!/r/n")));
else
   RETAILMSG(1,(TEXT("++++the bStylusStatus is false!/r/n")));


StylusInfo->SetIsInverted(true);


StylusInfo->GetIsInverted(&bStylusStatus);

if(bStylusStatus)
   RETAILMSG(1,(TEXT("++++the bStylusStatus is false!/r/n")));


//################################################################

//Button使用示范

IXRButtonBasePtr  btn; 

if (Failed(hr=root->FindName(TEXT("DVD"),&btn)))       
return -1;

 

BtnEventHandler handlerBtn;
IXRDelegate<XRMouseButtonEventArgs>* clickdelegateBtn;

if (Failed(hr=CreateDelegate(&handlerBtn,&BtnEventHandler::Btn_OnClick,&clickdelegateBtn)))       
  return -1;


if (Failed(hr=btn->AddClickEventHandler(clickdelegateBtn)))  //注册交互事件     
  return -1;

//##########################################################################################################333


//ComboBox使用示范

IXRComboBoxPtr  ComBox;

//IXRComboBoxItem

IXRComboBoxItemPtr   ComBoxItem=NULL,ComBoxItemT=NULL;
XRValue           XValueComBox,XValueComBoxT;


if (Failed(hr=root->FindName(TEXT("ComBox"),&ComBox)))       
return -1;

 


//XValueComBox.vType=VTYPE_BSTR;

//XValueComBox.bstrStringVal=L"熊清华";


XValueComBox.vType=VTYPE_READONLY_StriNG;

XValueComBox.pReadOnlyStringVal=L"XQH";

 

if(ComBoxItem==NULL)
RETAILMSG(1,(TEXT("++++the ComBoxItem is NULL!/r/n")));//2009--12--29  XQH  是一个空指针!!!

 

pApplication->CreateObject(IID_IXRComboBoxItem,&ComBoxItem);

hr=ComBoxItem->SetContent(&XValueComBox);

DWORD   dwError;
dwError=GetLastError( );


int *pIndex=NULL;

IXRItemCollection* ppItems;

ComBox->GetItems(&ppItems);

 

//ppItems->Add((IXRDependencyObject*)ComBoxItem,pIndeX);
ppItems->Insert(0,(IXRDependencyObject*)ComBoxItem);

//------------------------------------------------------------

pApplication->CreateObject(IID_IXRComboBoxItem,&ComBoxItemT);

//XValueComBoxT.SetNull();
XValueComBoxT.vType=VTYPE_READONLY_StriNG;
XValueComBoxT.pReadOnlyStringVal=L"WXY";

hr=ComBoxItemT->SetContent(&XValueComBoxT);


//ppItems->Add((IXRDependencyObject*)ComBoxItem,pIndeX);


ppItems->Insert(1,(IXRDependencyObject*)ComBoxItemT);

//=================================================================


ComBox->SetSELEctedIndex(0);
//ComBox->SetSELEctedItem(ComBoxItem);


BtnEventHandler handlerComboBox;
IXRDelegate<XRSELEctionChangedEventArgs>* clickdelegateComBox;

if (Failed(hr=CreateDelegate(&handlerComboBox,&BtnEventHandler::ComboBox_SelChange,&clickdelegateComBox)))       
  return -1;


//if (Failed(hr=ComBox->AddSELEctionChangedHandler(clickdelegateComBox)))  //注册交互事件     
//  return -1;


ComBox->AddSELEctionChangedEventHandler(clickdelegateComBox);

 

 


//##########################################################################################################333


//ListBox使用示范


IXRListBoxPtr  ListBox;

IXRListBoxItemPtr   ListBoxItem=NULL,ListBoxItemT=NULL;
XRValue           XValueListBox,XValueListBoxT;


if (Failed(hr=root->FindName(TEXT("ListBox"),&ListBox)))       
return -1;

 

XValueListBox.vType=VTYPE_READONLY_StriNG;

XValueListBox.pReadOnlyStringVal=L"XQH";

 

if(ListBoxItem==NULL)
RETAILMSG(1,(TEXT("++++the ListBoxItem is NULL!/r/n")));//2009--12--29  XQH  是一个空指针!!!

 

pApplication->CreateObject(IID_IXRListBoxItem,&ListBoxItem);

hr=ListBoxItem->SetContent(&XValueListBox);


int *pIndexList=NULL;

IXRItemCollection* ppItemsList;

ListBox->GetItems(&ppItemsList);

 

//ppItemsList->Add((IXRDependencyObject*)ListBoxItem,pIndexList);
ppItemsList->Insert(0,(IXRDependencyObject*)ListBoxItem);

//------------------------------------------------------------

pApplication->CreateObject(IID_IXRListBoxItem,&ListBoxItemT);

//XValueListBoxT.SetNull();
XValueListBoxT.vType=VTYPE_READONLY_StriNG;
XValueListBoxT.pReadOnlyStringVal=L"WXY";

hr=ListBoxItemT->SetContent(&XValueListBoxT);

 

//ppItemsList->Add((IXRDependencyObject*)ListBoxItemT,pIndexList);
ppItemsList->Insert(1,(IXRDependencyObject*)ListBoxItemT);
//=================================================================


ListBox->SetSELEctedIndex(0);
//ListBox->SetSELEctedItem(ListBoxItem);


BtnEventHandler handlerListBox;
IXRDelegate<XRSELEctionChangedEventArgs>* clickdelegateListBox;

if (Failed(hr=CreateDelegate(&handlerListBox,&BtnEventHandler::ListBox_SelChange,&clickdelegateListBox)))       
  return -1;


//if (Failed(hr=ListBox->AddSELEctionChangedHandler(clickdelegateListBox)))  //注册交互事件     
 // return -1;


ListBox->AddSELEctionChangedEventHandler(clickdelegateListBox);


//##########################################################################################################333


//checkBox使用示范


IXRcheckBoxPtr  checkBox;


if (Failed(hr=root->FindName(TEXT("checkBox"),&checkBox)))       
return -1;

XRThreeState   status;

checkBox->GetIschecked(&status);

 

BtnEventHandler handlercheckBox;

IXRDelegate<XRRoutedEventArgs>* clickdelegatecheckBox;

if (Failed(hr=CreateDelegate(&handlercheckBox,&BtnEventHandler::checkBox_check,&clickdelegatecheckBox)))       
  return -1;


if (Failed(hr=checkBox->AddcheckedEventHandler(clickdelegatecheckBox)))  //注册交互事件     
  return -1;


//##########################################################################################################333


//RadioButton使用示范


IXRRadioButtonPtr  RadioBtn;


if (Failed(hr=root->FindName(TEXT("RadioBtn1"),&RadioBtn)))       
return -1;

XRThreeState   statusRadioBtn;

RadioBtn->GetIschecked(&statusRadioBtn);

 

BtnEventHandler handlerRadioBtn;

IXRDelegate<XRRoutedEventArgs>* clickdelegateRadioBtn;

if (Failed(hr=CreateDelegate(&handlerRadioBtn,&BtnEventHandler::radioBtn_check,&clickdelegateRadioBtn)))       
  return -1;


if (Failed(hr=RadioBtn->AddcheckedEventHandler(clickdelegateRadioBtn)))  //注册交互事件     
  return -1;

 


//##########################################################################################################333


//ProgressBar进度条使用示范


IXRProgressBarPtr  PrgBar;


if (Failed(hr=root->FindName(TEXT("PrgBar"),&PrgBar)))       
return -1;


PrgBar->SetMinimum(0);
PrgBar->SetMaximum(100);

PrgBar->SETVALue(50);

 

/*
BtnEventHandler handlerPrgBar;

IXRDelegate<XRValueChangedEventArgs>* clickdelegatePrgBar;

if (Failed(hr=CreateDelegate(&handlerPrgBar,&BtnEventHandler::PrgBar_check,&clickdelegatePrgBar)))       
  return -1;


if (Failed(hr=PrgBar->AddMaximumChangedEventHandler(clickdelegatePrgBar)))  //注册交互事件     
  return -1;

*/


//##########################################################################################################333


//TextBox使用示范


IXRTextBoxPtr  TEXTBox;


if (Failed(hr=root->FindName(TEXT("TextBox"),&TextBox)))       
return -1;

TextBox->SetText(L"XQH");


BtnEventHandler handlerTextBox;

IXRDelegate<XRTextChangedEventArgs>* clickdelegateTextBox;

if (Failed(hr=CreateDelegate(&handlerTextBox,&BtnEventHandler::TextBox_TextChange,&clickdelegateTextBox)))       
  return -1;


if (Failed(hr=TextBox->AddTextChangedEventHandler(clickdelegateTextBox)))  //注册交互事件     
  return -1;


//##########################################################################################################333

//Slider使用示范


IXRSliderPtr  Slider;


if (Failed(hr=root->FindName(TEXT("Slider"),&Slider)))       
return -1;


Slider->SetMinimum(0);
Slider->SetMaximum(100);

Slider->SETVALue(50);

/*
BtnEventHandler handlerSlider;

IXRDelegate<XRValueChangedEventArgs>* clickdelegateSlider;

if (Failed(hr=CreateDelegate(&handlerSlider,&BtnEventHandler::Slider_Change,&clickdelegateSlider)))       
  return -1;


if (Failed(hr=Slider->AddValueChangedEventHandler(clickdelegateSlider)))  //注册交互事件     
  return -1;
*/


//##########################################################################################################333


//ScrollBar使用示范


//垂直ScrollBar
IXRScrollBarPtr  ScrollBarVr;

if (Failed(hr=root->FindName(TEXT("ScrollBar_Vr"),&ScrollBarVr)))       
return -1;


ScrollBarVr->SetMinimum(0);
ScrollBarVr->SetMaximum(100);

ScrollBarVr->SETVALue(50);

/*
BtnEventHandler handlerScrollBarVr;

IXRDelegate<XRValueChangedEventArgs>* clickdelegateScrollBarVr;

if (Failed(hr=CreateDelegate(&handlerScrollBarVr,&BtnEventHandler::ScrollBarVr_Change,&clickdelegateScrollBarVr)))       
  return -1;


if (Failed(hr=ScrollBarVr->AddValueChangedEventHandler(clickdelegateScrollBarVr)))  //注册交互事件     
  return -1;
*/
//----------------------------------------------------------------

//水平ScrollBar

IXRScrollBarPtr  ScrollBarHr;

if (Failed(hr=root->FindName(TEXT("ScrollBar_Hr"),&ScrollBarHr)))       
return -1;


ScrollBarHr->SetMinimum(0);
ScrollBarHr->SetMaximum(100);

ScrollBarHr->SETVALue(50);

/*
BtnEventHandler handlerScrollBarHr;

IXRDelegate<XRValueChangedEventArgs>* clickdelegateScrollBarHr;

if (Failed(hr=CreateDelegate(&handlerScrollBarHr,&BtnEventHandler::ScrollBarHr_Change,&clickdelegateScrollBarHr)))       
  return -1;


if (Failed(hr=ScrollBarHr->AddValueChangedEventHandler(clickdelegateScrollBarHr)))  //注册交互事件     
  return -1;
*/
//##########################################################################################################333


//passwordBox使用示范


IXRpasswordBoxPtr  PassBox;


if (Failed(hr=root->FindName(TEXT("PassBox"),&PassBox)))       
return -1;

PassBox->Setpassword(L"xqh");

 

BtnEventHandler handlerPassBox;

IXRDelegate<XRRoutedEventArgs>* clickdelegatePassBox;

if (Failed(hr=CreateDelegate(&handlerPassBox,&BtnEventHandler::password_Change,&clickdelegatePassBox)))       
  return -1;


if (Failed(hr=PassBox->AddpasswordChangedEventHandler(clickdelegatePassBox)))  //注册交互事件     
  return -1;


//###############################################################

pVisualHost->StartDialog(null);//显示对话框


UINT StartProcessCode = 0;


pApplication->StartProcessing(&StartProcessCodE);

//##################################################################

clickdelegateBtn->Release();

clickdelegateComBox->Release( );
clickdelegateListBox->Release( );

clickdelegatecheckBox->Release( );
clickdelegateRadioBtn->Release( );


//clickdelegatePrgBar->Release( );

clickdelegateTextBox->Release( );

//-----------------------------------
//clickdelegateSlider->Release( );
//clickdelegateScrollBarVr->Release( );
//clickdelegateScrollBarHr->Release( );
//------------------------------------
clickdelegatePassBox->Release( );

   return exitCode;

}


//=============================================================================
//对应的Page_Control.xaml内容


<UserControl
 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 x:Class="SilverlightApplication1.Page"
 Width="640" Height="480">

 <Grid x:Name="LayoutRoot" BACkground="#FF0000FF">   <ListBox HorizontalAlignment="Left" Margin="120,166,154" Width="160" x:Name="ListBox" RenderTransformOrigin="0.5,0.25"/>   <checkBox Height="40" HorizontalAlignment="Right" Margin="0,39,80,0" VerticalAlignment="Top" Width="160" Content="checkBox" x:Name="checkBox"/>   <RadioButton Height="40" HorizontalAlignment="Right" Margin="0,81,0" VerticalAlignment="Top" Width="160" Content="Com1" x:Name="RadioBtn1"/>   <ProgressBar HorizontalAlignment="Right" Margin="0,158,40,0" Width="280" x:Name="PrgBar" VerticalAlignment="Top" Height="40" BACkground="#FF00FF00" Foreground="#FFFF0000"/>   <RadioButton HorizontalAlignment="Right" Margin="0,119,0" Width="160" Content="Com2" x:Name="RadioBtn2" VerticalAlignment="Top" Height="40"/>   <Button Height="32" HorizontalAlignment="Left" Margin="80,8,0" VerticalAlignment="Top" Width="160" Content="DVD" x:Name="DVD"/>   <ComboBox Height="40" HorizontalAlignment="Left" Margin="80,0" VerticalAlignment="Top" Width="160" x:Name="ComBox"/>   <TextBox Height="40" HorizontalAlignment="Right" Margin="0,200,200" VerticalAlignment="Bottom" Width="120" Text="" textwrapping="Wrap" x:Name="TextBox" RenderTransformOrigin="0.1,0.4"/>   <Slider Height="40" HorizontalAlignment="Right" Margin="0,100" VerticalAlignment="Bottom" Width="240" x:Name="Slider"/>   <ScrollBar Height="40" HorizontalAlignment="Left" Margin="80,80" VerticalAlignment="Bottom" Width="200" x:Name="ScrollBar_Hr" Orientation="Horizontal"/>   <passwordBox Height="40" HorizontalAlignment="Right" Margin="0,160,40" VerticalAlignment="Bottom" Width="160" x:Name="PassBox"/>   <TextBlock Height="40" HorizontalAlignment="Right" Margin="0,200" VerticalAlignment="Bottom" Width="120" Text="TextBlock" textwrapping="Wrap" x:Name="TextBlock"/>   <ScrollBar HorizontalAlignment="Left" Margin="40,160" Width="40" x:Name="ScrollBar_Vr"/>  </Grid> </UserControl>

大佬总结

以上是大佬教程为你收集整理的WINCE6.0下用SilverLight技术的基本控件使用全部内容,希望文章能够帮你解决WINCE6.0下用SilverLight技术的基本控件使用所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。