大佬教程收集整理的这篇文章主要介绍了WINCE6.0下用SilverLight技术的基本控件使用,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
//###############################################################################################################
//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")));
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;
}
*/
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);
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使用示范
//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;
//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使用示范
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
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使用示范
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);
/*
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使用示范
if (Failed(hr=root->FindName(TEXT("TextBox"),&TextBox)))
return -1;
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);
/*
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);
/*
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);
/*
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
if (Failed(hr=root->FindName(TEXT("PassBox"),&PassBox)))
return -1;
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,请注明来意。