IXRWin32Control (Compact 2013)
3/28/2014
This class represents a Win32 control in a XAML for Windows Embedded application.
Syntax
class IXRWin32Control : public IXRControl
Inheritance Hierarchy
IXRWin32Control
Methods
Method |
Description |
---|---|
Retrieves the name of the class that this IXRWin32Control object belongs to. |
|
Retrieves the handle to this IXRWin32Control object. |
|
Sets the name of the class that this IXRWin32Control object belongs to. |
|
Sets an existing window handle as the new handle for this IXRWin32Control object, so that the IXRWin32Control object represents a child window control of the visual host window. |
Thread Safety
Members of this class are thread-safe if you previously called IXRApplication::CreateHostFromXaml and supplied it with an XRWindowCreateParams structure that has AllowsMultipleThreadAccess set to true.
Remarks
You can use a Win32 control to create a control that has a WndProc. The WndProc for the control has message-handling behavior that is separate from the message-handling behavior for the WndProc for the main window.
You can use this class to create an IXRWin32Control control, add it to the visual tree that is attached to the visual root of your application, and then set its handle to your own window control.
When the Win32 control receives UI focus, its WndProc processes all the input messages. When the user presses the TAB key, if you did not add custom event handling code for the TAB event in the WndProc for the Win32 control, XAML for Windows Embedded handles the TAB event by giving focus to the next object in the visual-host window.
Note
Do not implement custom event-handling code for the TAB event in the WndProc for the Win32 control. XAML for Windows Embedded handles the TAB event for the Win32 control by giving the UI focus back to the main window.
When you create a class instance, use an IXRWin32ControlPtr smart pointer instead of a raw interface pointer. For more information, see XRPtr<Interface>.
To create an IXRWin32Control object in XAML for Windows Embedded and associate it with the handle to a window control, you can use several methods in IXRControl and in other inherited classes. By using these methods, the window control can leverage qualities such as animation storyboards, position, and layout. You can set properties associated with the following inherited methods by calling these methods or by defining the associated XAML attributes in the source Microsoft Silverlight 3 XAML file.
Note
Calling any other methods in parent classes that set values results in an error.
Method |
Description |
---|---|
Sets the height of the Win32 control. |
|
Sets the horizontal-alignment characteristics that determine the position of the Win32 control when XAML for Windows Embedded displays it within a parent element, such as a panel control or an items control. |
|
Sets a value that indicates whether XAML for Windows Embedded includes the Win32 control in the tab order for UI focus. |
|
Sets the width of the frame that surrounds the Win32 control. |
|
Sets the maximum height constraint of the Win32 control. |
|
Sets the maximum width constraint of the Win32 control. |
|
Sets the minimum height constraint of the Win32 control. |
|
Sets the minimum width constraint of the Win32 control. |
|
Sets the identifying name of the Win32 control. |
|
Sets the transformation to apply when XAML for Windows Embedded renders the Win32 control. |
|
Sets the new vertical-alignment characteristics that determine the position of the Win32 control when XAML for Windows Embedded displays it within a parent element, such as a panel control or an items control. |
|
Sets the new width of the Win32 control. |
Note
The IXRFrameworkElement::FindName method searches for the name associated with the x:Name attribute for this Win32 control when it is in the object tree, not for the class name.
Example
The following example code creates an IXRWin32Control, sets its handle as the handle to a window control, and adds it to a panel object that is in the visual tree for the application.
Important
For readability, the following code example does not contain security checking or error handling. Do not use the following code in a production environment.
#include "windows.h"
#include "XamlRuntime.h"
#include "XRPtr.h"
void CreateControl(IXRApplication* pApplication, IXRPanel* pPanel, HWND HandleToWindowControl)
{
IXRWin32ControlPtr pWin32Control;
pApplication->CreateObject(&pWin32Control);
pWin32Control->SetClassName(L"MyControlClass");
pWin32Control->SetName(L"Win32CtlSample");
pWin32Control->SetHeight(80);
pWin32Control->SetWidth(200);
pWin32Control->SetHorizontalAlignment(XRHorizontalAlignment_Left);
pWin32Control->SetVerticalAlignment(XRVerticalAlignment_Top);
pWin32Control->SetHandle(HandleToWindowControl, false);
IXRUIElementCollectionPtr pChildCollection;
pPanel->GetChildren(&pChildCollection);
pChildCollection->Add(pWin32Control, NULL);
}
For more information about the classes used in this example, see IXRApplication, IXRPanel and IXRUIElementCollection.
.NET Framework Equivalent
None.
Requirements
Header |
XamlRuntime.h |
sysgen |
SYSGEN_XAML_RUNTIME |