Syntax
PXL_RETURN_CODE PxLSetPreviewSettings ( HANDLE hCamera, LPCSTR pTitle = "PixeLINK Preview", U32 style = WS_OVERLAPPEDWINDOW | WS_VISIBLE, U32 left = CW_USEDEFAULT, U32 top = CW_USEDEFAULT, U32 width = CW_USEDEFAULT, U32 height = CW_USEDEFAULT, HWND hParent = NULL, U32 childId = 0 );
Description
This function defines a preview window if none is present or redefines the settings of the current preview window for the specified camera. For C++, most parameters have default values.
hCamera is the camera handle. This value is returned by PxLInitializeEx.
pTitle is the title of the preview window. It will appear in the title bar (if any) of the window.
style is the preview window style. See the CreateWindow function of the Windows API for more information.
left specifies the left coordinate of the preview window. This value is relative to the left side of the parent window, or of the screen if there is no parent window.
top specifies the top coordinate of the preview window. This value is relative to the top of the parent window, or of the screen if there is no parent window.
width is the width of the client rectangle of the preview window.
height is the height of the client rectangle of the preview window.
hParent is the handle to the parent window, if any.
childId is the ID of the child window.
Usage
Option 1) API creates a window previews into it:
Example 1:
/* Use all the defaults, but change the preview window title*/ rc = PxLSetPreviewSettings( hCamera, "Preview Demo", WS_OVERLAPPEDWINDOW | WS_VISIBLE, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, 0);
Example 2:
/* Have the API create a preview window of fixed dimensions */ rc = PxLSetPreviewSettings( hCamera, "Preview Demo", // Title WS_OVERLAPPEDWINDOW | WS_VISIBLE, // Window Style 0, // Left 0, // Top 250, // Width 400, // Height NULL, // Parent HWND 0); // Child Resource Id
These examples and more can be seen in the C/C++ demonstration application 'preview'.
Option 2) API previews into an existing window:
Example 1
// We want to have the API display the preview in the window with handle hWndParent GetClientRect(hWndParent, &rectParent); // Take up X% of the window, and centre the preview image int width = (int)((float)rectParent.right * PREVIEW_PERCENTAGE_OF_WINDOW / 100.0f); int height = (int)((float)rectParent.bottom * PREVIEW_PERCENTAGE_OF_WINDOW / 100.0f); int left = (rectParent.right - width) / 2; int top = (rectParent.bottom - height) / 2; rc = PxLSetPreviewSettings( hCamera, "", // Title will not be displayed WS_CHILD | WS_VISIBLE, left,top,width,height, hWndParent, 0);
This example and more can be see in the C/C++ demonstration applications 'previewtohwnd', 'MFCPreview', 'previewoverlay', and 'autoexposure'.
Comments, Restrictions and Limitations
Callbacks
To add a callback function to the preview so that you can modify the image or overlay it, specify the callback function with PxLSetCallback, using the callback type to CALLBACK_PREVIEW.